.NET - 具有相同名称空间的多个库 - 引用

MrE*_*yes 20 c# namespaces

今天我面临一个奇怪的挑战......

这个挑战涉及两个我需要从我的应用程序引用的.NET库.我无法控制其中的两个并且在其中具有相同的命名空间.

所以...

我有foo.dll它包含一个Widget位于Blue.Red.Orange命名空间的类.

我有bar.dll它也包含一个Widget也位于Blue.Red.Orange命名空间的类.

最后,我有我的应用程序需要同时引用foo.dllbar.dll.这需要在我的应用程序中我需要使用Widget来自的类foo以及Widget来自的类bar

所以,问题是如何管理这些引用,以便我可以确定我使用的是正确的Widget类?

如上所述,我无法控制foobar库,它们是什么,不能改变.但我确实可以完全控制我的应用程序.

Jon*_*eet 42

您需要使用外部别名 - 在C#2中引入.

Anson Horton 在他的博客上有一个演练,你可能会发现它很有用.

  • 可能值得注意的是,默认情况下,每个程序集都有"global"的外部别名 (2认同)
  • @Augusto:它适用于同一程序集的不同版本,或适用于包含相同名称空间限定类型名称的不同程序集.它不仅仅针对一种情况或另一种情况.你声称我的解决方案不起作用吗?如果是这样,你有什么要支持这种说法吗? (2认同)