Age*_*t25 5 c# forms alias namespaces designer
我遇到了与Visual Studio 2008中的表单设计器自动生成的冲突的命名空间和代码有问题.我搜索了许多论坛和不同的文档,但是找不到任何解决方案.
我有一个名为Foo.dll的程序集,其中包含以下命名空间/代码:
namespace Foobar.System
{
public class MySystemClass() { }
}
Run Code Online (Sandbox Code Playgroud)
然后,我有另一个包含som常用形式的程序集:
namespace Foobar.MyCommonForms
{
public class MyForm : System.Windows.Forms.Form
{
public void SomeMethod()
{
var systemclass = new Foobar.System.MySystemClass();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里,编译器显示以下错误:类型或命名空间"Windows"不是命名空间"Foobar.System"的一部分.显然,编译器试图在名称空间Foobar.System.Windows.Forms中查找类System.Windows.Forms.Form!
我已经能够通过在引用程序集Foo.dll时使用别名'x'而不是'global'来解决这个问题,并在我的代码文件中声明'extern alias x',并将'x ::'放在前面每个对名称空间Foobar.System中的类型和类的引用.代码编译.
但似乎表单设计者不会认识到这一点,并在尝试显示表单时给我一个错误.再次,这可以通过在System.Windows.Forms(例如global :: System.Windows.Forms.Button)中对类的每个引用手动放置'global ::'来解决,但每次都有可能在表单,代码自动重新生成,并删除'global ::'部分.
所以,问题是:有没有办法让表单设计者知道用于引用我的程序集Foo.dll的别名'x',还是有另一个更好的解决方案?将命名空间Foobar.System重命名为其他东西只是太多的工作.