How do you resolve .Net namespace conflicts with the 'using' keyword?
-
09-06-2019 - |
Question
Here's the problem, you include multiple assemblies and add 'using namespaceX' at the top of your code file.
Now you want to create a class or use a symbol which is defined in multiple namespaces,
e.g. System.Windows.Controls.Image
& System.Drawing.Image
Now unless you use the fully qualified name, there will be a crib/build error due to ambiguity inspite of the right 'using' declarations at the top. What is the way out here?
(Another knowledge base post.. I found the answer after about 10 minutes of searching because I didn't know the right keyword to search for)
Solution
Use alias
using System.Windows.Controls;
using Drawing = System.Drawing;
...
Image img = ... //System.Windows.Controls.Image
Drawing.Image img2 = ... //System.Drawing.Image
OTHER TIPS
This page has a very good writeup on namespaces and the using-statement:
http://www.blackwasp.co.uk/Namespaces.aspx
You want to read the part about "Creating Aliases" that will allow you to make an alias for one or both of the name spaces and reference them with that like this:
using ControlImage = System.Windows.Controls.Image;
using System.Drawing.Image;
ControlImage.Image myImage = new ControlImage.Image();
myImage.Width = 200;