C#从引用项目中获取xsd的最佳方法

发布于 2024-08-18 08:45:33 字数 110 浏览 3 评论 0原文

我的应用程序引用了另一个项目,其中包含 XSD 文件。

获得 XSD 的最佳方式是什么?

我做了一些谷歌搜索,发现了一些建议,比如加载程序集并从中获取它,有没有更简单的方法?

My application references another a project which has an XSD file in it.

Whats the best way to get that XSD?

I did a bit of googling and found suggestions like load the assembly and get it from that, is there no easier way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

骷髅 2024-08-25 08:45:33

如果 XSD 是程序集中的嵌入资源,那么您需要从程序集中获取它。

如果您的项目引用并使用该程序集,则无需再次加载它(内存中不需要 2 个副本)。

访问程序集的最简单方法是使用其中定义的类型之一:

Type t = typeof(TypeInOtherAssembly);
Assembly assembly = t.Assembly;
assembly.GetManifestResourceStream(...);

If the XSD is an embedded resource in the assembly, then you need to get it from the assembly.

If your project references and uses the assembly, then you won't need to load it again (you don't need 2 copies in memory).

The easiest way to get to the assembly, would be from one of the types defined in it:

Type t = typeof(TypeInOtherAssembly);
Assembly assembly = t.Assembly;
assembly.GetManifestResourceStream(...);
ま昔日黯然 2024-08-25 08:45:33

如果您已将 XSD 添加为资源,那么最简单的方法是使自动生成的 Properties.Resources 类公开可见并引用自动生成的属性。您还可以将 Properties.Resources 保留为内部并添加 InternalsVisibleTo 属性以允许其他程序集具有访问权限。

除了这种方法之外,您还可以使用 目标程序集上的 GetManifestResourceStream 以提取 XSD 信息。

If you've added the XSD as a resource then the easiest way is to make the auto-generated Properties.Resources class publicly visible and reference the auto-generated property. You could also keep Properties.Resources internal and add an InternalsVisibleTo attribute to allow your other assembly to have access.

Other than that approach, you can use the GetManifestResourceStream on the target assembly to extract the XSD information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文