.NET - Multiple libraries with the same namespace - referencing
Today I am faced with a curious challenge...
This challenge involves two .NET libraries that I need to 开发者_如何学Pythonreference from my application. Both of which I have no control over and have the same namespace within them.
So...
I have foo.dll
that contains a Widget
class that is located on the Blue.Red.Orange
namespace.
I have bar.dll
that also contains a Widget
class that is also located on the Blue.Red.Orange
namespace.
Finally I have my application that needs to reference both foo.dll
and bar.dll
. This is needed as within my application I need to use the Widget
class from foo
and also the Widget
class from bar
So, the question is how can I manage these references so that I can be certain I am using the correct Widget
class?
As mentioned, I have no control over the foo
or bar
libraries, they are what they are and cannot be changed. I do however have full control over my application.
You need to use an extern alias - introduced in C# 2.
Anson Horton has a walkthrough on his blog which you may find useful.
I think you have to use extern alias
See http://msdn.microsoft.com/en-us/library/ms173212.aspx
Here's a walkthrough. http://blogs.msdn.com/b/ansonh/archive/2006/09/27/774692.aspx
You could use the "Aliases" property for resolving conflicts. Select the library and open Property window. This is already discussed in this SO post
Wow, thats tricky. I tink, I would create two wrapper-DLLs:
- MyBarWrapper.dll (which has a reference to bar.dll)
- MyFooWrapper.dll (which has a reference to foo.dll)
and support different namespaces there.
I'd be surprised if you can do this, without using reflection.
It might be easier to create your own FooWrapper and BarWrapper dlls which reference foo and bar and expose their contents again under different namespaces.
精彩评论