【问题标题】:Conflicting types present in two Silverlight dlls两个 Silverlight dll 中存在冲突类型
【发布时间】:2011-11-23 10:23:35
【问题描述】:

场景:

我在 Silverlight 中创建了两个自定义控件,MyCustomControl1 和 MyCustomControl2。这两个控件都有一个名为 Control.Generic 的命名空间。 Control.Generic 有一个名为 PageOrientation 的枚举类型。我想在我的项目中同时使用这两个控件(MyCustomControl1 和 MyCustomControl2)。我在我的项目中添加了对这两个控件的引用。现在,如何在我的类文件中包含两个控件的命名空间 Control.Generic?目前我已经指定如下:

using Control.Generic;

但问题是当我使用 PageOrientation 枚举时,我得到了以下异常。

“MyCustomControl1.dll”和“MyCustomControl2.dll”中都存在“Control.Generic.PageOrientation”类型。

我该如何解决这个冲突?

【问题讨论】:

  • 不知道它是否适合你,但由于全局限定符在这里不起作用,也许你可以创建第二个类并在那里使用 using 语句并使该类静态并返回类型的对象从该类到第一类的第二个用户控制。有点复杂。

标签: c# .net silverlight controls


【解决方案1】:

希望在您的用户控件之间共享类/枚举等是很常见的。您应该避免在任何两个库中使用完全相同的完全限定名称。

您想要做的是拥有一个由两个用户控件库引用的公共库,其中包含您可能想要重用的任何公共元素。

例如

Controls.Generic.dll 包含 Control.Generic.PageOrientationMyCustomControl1.dllMyCustomControl1.dll 只需引用Controls.Generic.dll

通常,您的库和其中的命名空间应该匹配。如果他们不这样做,您可能正在尝试做您不应该做的事情:)

基本上开始将您自己的库视为第三方控件,并像他们一样使用命名标准(company.subarea.featureset 等)。从长远来看,它将为您省去很多麻烦。

【讨论】:

    猜你喜欢
    • 2013-01-20
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多