0

我以为我知道这个问题的答案,但编译错误告诉我不同​​。我创建了两个独立的库,它们包含相同的词干名称空间;例如:

MyLib1.dll 

包含

Common.MyFuncs.DoSomeStuff

MyLib2.dll

包含

Common.MyFuncs.DoOtherStuff

MyLib2.dll 引用 myLib1.dll

当我在我的项目中包含对这两者的引用时,MyLib1.dll 正在掩盖 MyLib2.dll。我的问题很简单,这是正确的 - 即这是 .net 所做的吗?我知道可以将 extern 用于冲突的命名空间,但我确信我以前见过跨程序集共享的命名空间(事实上,我确信我以前做过),但我似乎不能在网上找到任何东西来表明我是对还是错。

4

1 回答 1

1

命名空间不会相互“屏蔽”,同一个命名空间可以非常愉快地共存于多个程序集中(实际上有一些 System.* 命名空间存在于多个程序集中)。你确定你没有在每个程序集中定义相同的类型(也许你已经移动了代码但没有删除原始代码?),这样你就不会在你的类型之间发生冲突。

当您引用这两个项目时,您仍然需要using Common.MyFuncs.[whatever];在每个需要使用其中类型的代码文件的顶部包含一个语句。

于 2013-11-05T10:11:28.830 回答