如何为c#类型生成xsd模式(在代码中)。肯定有一种方法,因为为wcf中的数据交换生成了xsd模式。
答案 0 :(得分:2)
比s7orm的答案更进一步我写了这个简单的函数,我从反映xsd.exe得到的:
private void ExtractXsdFromType(Type type, FileInfo xsd)
{
XmlReflectionImporter importer = new XmlReflectionImporter();
XmlTypeMapping mapping = importer.ImportTypeMapping(type);
XmlSchemas xmlSchemas = new XmlSchemas();
XmlSchemaExporter xmlSchemaExporter = new XmlSchemaExporter(xmlSchemas);
using (FileStream fs = xsd.Create())
{
xmlSchemaExporter.ExportTypeMapping(mapping);
xmlSchemas[0].Write(fs);
}
}
答案 1 :(得分:1)
您可以使用XML Schema Definition Tool (xsd.exe)
xsd.exe YourAssembly.dll /type:YourNamespace.YourType
答案 2 :(得分:1)
所以,我通过在xsd.exe中查看反射器找到了我的问题的解决方案。这是为了将来的参考:
XmlReflectionImporter importer = new XmlReflectionImporter();
XmlTypeMapping stringMapping = importer.ImportTypeMapping(typeof(String));