问题描述
|
我正在编写一个类库,遇到了使内部名称空间成为现实的需求。我这样做是因为为了避免冲突,有一些来自XSD的自动生成的代码。
但是,希望将名称空间设置为内部是否完全有意义?我知道这是不可能的。我读过这篇文章(.Net的内部命名空间?)等等。
我要问的是,如果您认为自己想要/需要一个内部名称空间,则可以在体系结构/设计中进行哪些改进?为了摆脱拥有内部名称空间的错误需求,我应该怎么做?
解决方法
不,名称空间本身没有特殊的可访问性。它只是具有可访问性的名称空间的成员(基本上是类型)。只需将名称空间中的所有类型设置为内部。
,当您使用
xsd.exe
工具从XSD生成类时,请使用/namespace:<namespace>
属性。
XML架构定义工具(Xsd.exe)
/n[amespace]:namespace
-为生成的类型指定运行时名称空间。
如果您有基于XSD生成的类型化数据集,则可以在数据集属性中更改“ 3”。
另外,如果您的代码未绑定到自动生成的数据集和设计工具,则可以手动更改名称空间,当然,如果您不必经常重新生成类。
如果需要经常生成类,请制作一个蝙蝠(cmd)文件,该文件将使用所需的名称空间和类名称运行xsd.exe。
另外,如果使用XmlSerializer对XML进行序列化/反序列化,则不能将类设置为内部类。