通过.NET Framework类以编程方式使用xsd.exe工具的功能(生成类架构)? [英] Programmatically use XSD.exe tool feature (generate schema from class) through .NET Framework classes?

查看:107
本文介绍了通过.NET Framework类以编程方式使用xsd.exe工具的功能(生成类架构)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要生成基于类的XML架构,只是因为你可以 做的 xsd.exe工具

I want to generate an XML Schema based upon a class, just as you can do with the Xsd.exe tool.

例如。 XSD.EXE /类型:类型名称/ outputdir:C:\ assmeblyname

有没有办法做到这一点的使用类在.NET Framework ,而不是通过独立工具?

Is there a way to do this by using classes in the .NET Framework instead of using the standalone tool?

我敢肯定,我已经看到了有关任务或引用的信息类似 - 即纲领性的东西 - 可以代替其中的一些独立的应用中使用,或一些独立的实用程序通过整箱或微软的API得到他们的特点。

I'm sure I've seen information about task references or similar - i.e. something programmatic - that can be used in place of some of these standalone utilities, or that some standalone utilities get their features through the FCL or a Microsoft API.

推荐答案

做到这一点:

public string GetFullSchema() {

        string @namespace = "yourNamespace";

        var q = from t in Assembly.GetExecutingAssembly().GetTypes()
        where t.IsClass && t.Namespace ==  @namespace
        select t;

        XmlReflectionImporter importer = new XmlReflectionImporter(@namespace);

        XmlSchemas schemas = new XmlSchemas();
        XmlSchemaExporter exporter = new XmlSchemaExporter(schemas);


        foreach (var x in q)
        {
                var map = importer.ImportTypeMapping(x);
                exporter.ExportTypeMapping(map);
        }

        using (MemoryStream ms = new MemoryStream())
        {
           schemas[0].Write(ms);
           ms.Position = 0;
           return new StreamReader(ms).ReadToEnd();
        }

}

这篇关于通过.NET Framework类以编程方式使用xsd.exe工具的功能(生成类架构)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆