有没有办法让xsd.exe生成具有“内部”范围的类?

问题描述:

我有一个包含一些XSD生成的类的DLL。不幸的是,XSD.exe公开这些类,导致“公开可见类型或成员XYZ缺少XML注释”警告。另外,我宁愿不从我的DLL公开这些类。有没有办法,手动编辑生成的.cs,使这些类内部有没有办法让xsd.exe生成具有“内部”范围的类?

这是一个非常简短的答案,可以扩展为一本书。

不,xsd.exe不能做你想做的。

但是,您可以使用this article中描述的技术来访问XmlCodeExporter类,该类是从XML模式生成代码的框架的一部分。完成此操作后,您将在内存中为生成的代码提供CodeDOM的副本。您可以迭代命名空间中的所有类并将它们设置为内部。

这可能是删除这一个警告所需的努力超过您的愿望。

另一种方式来删除警告是产生在其中的XML文档被关闭(毕竟谁需要对文档生成的代码?)组装

+0

是的,我们看着太代码。我们最终编写了一个awk脚本,我们将其作为构建过程的一部分进行调用,以便用我们所需的扩展生成的代码。 – womp 2009-09-16 21:33:32

+1

谢谢。我想把它写在“比它更值钱的麻烦之下”,我想。 – 2009-09-17 15:54:42