Я создал раздел пользовательской конфигурации с помощью 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 является пустым, таким образом, я предполагаю, что ресурс не может быть найден! Но почему?
Спасибо
Имя ресурса всегда:
<Базовое пространство имен>.
Итак, если ваш ресурс находится в «Resources / Xsd /», а пространство имен вашего проекта по умолчанию - « MonitoringAPI.Configuration », имя ресурса:
« MonitoringAPI.Configuration.Resources.Xsd.MonitoringConfiguration.xsd »
Также убедитесь, что действие сборки для вашего ресурса установлено на« Встроенный ресурс »