gpt4 book ai didi

c# - 无法使用 GetManifestResourceStream() 加载 list 资源

转载 作者:IT王子 更新时间:2023-10-29 03:52:04 32 4
gpt4 key购买 nike

我使用 XSD 创建了一个自定义配置部分。为了解析遵循这个新模式的配置文件,我用这个加载资源(我的 .xsd 文件):

public partial class MonitoringConfiguration
{
public const string ConfigXsd = "MonitoringAPI.Configuration.MonitoringConfiguration.xsd";
public const string ConfigSchema = "urn:MonitoringConfiguration-1.0";

private static XmlSchemaSet xmlSchemaSet;

static MonitoringConfiguration()
{
xmlSchemaSet = new XmlSchemaSet();
Stream xsdStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(ConfigXsd);
XmlReader schemaReader = XmlReader.Create(xsdStream);
xmlSchemaSet.Add(ConfigSchema, schemaReader);
}

}

顺便说一句,我的资源是:MonitoringConfiguration.xsd。另一个部分类(代表 .xsd 文件背后的代码)的命名空间是 MonitoringAPI.Configuration

问题出在这里:

 Stream xsdStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(ConfigXsd);

xsdStream为null,估计找不到资源!但是为什么?

谢谢

最佳答案

资源的名称总是:

<Base namespace>.<RelativePathInProject>.<FileName>

因此,如果您的资源位于“Resources/Xsd/”,并且您的默认项目命名空间为“MonitoringAPI.Configuration”,则资源名称为:

"MonitoringAPI.Configuration.Resources.Xsd.MonitoringConfiguration.xsd"

还要确保资源的构建操作设置为“嵌入式资源”

关于c# - 无法使用 GetManifestResourceStream() 加载 list 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3068736/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com