Я новичок в C#, и я пытаюсь создать .exe, используя C# и код Visual Studio (VS C). .Exe должен получить два аргумента, которые являются полными путями для файлов xsd и xml.
Пример:
- xpto.exe "C: \ Users \ dpaiva \ Desktop \ catalog. xml "" D: \ catalog.xsd "
Я адаптировал код, который нашел, потому что это не новая« проблема »в ИТ или C# .
static void Main(string[] args) {
if (args == null)
{
throw new ArgumentNullException ("source");
} else {
var xsdfile = "";
var xmlfile = "";
for (int i = 0; i < args.Length; i++){
if (i==0){
xsdfile = args[i];
} else if (i==1){
xmlfile = args[i];
}
}
XmlSchemaSet schema = new XmlSchemaSet();
if (xsdfile != null){
schema.Add("", xsdfile);
}
XmlReader rd = XmlReader.Create(xmlfile);
XDocument doc = XDocument.Load(rd);
doc.Validate(schema, ValidationEventHandler);
}
static void ValidationEventHandler(object sender, ValidationEventArgs e) {
XmlSeverityType type = XmlSeverityType.Warning;
if (Enum.TryParse < XmlSeverityType > ("Error", out type)) {
if (type == XmlSeverityType.Error) throw new Exception(e.Message);
}
}
}
Когда я отлаживаю код в VS C, и отображается следующая ошибка: Строка 37: schema.Add ("", xsdfile);
Система .ArgumentNullException в System.Private. Xml .dll: 'Значение не может быть нулевым'.
Так как у меня низкий опыт работы с C#, я не знаю, как исправить эту проблему, и если мой code правильно обрабатывать URL-адреса.
Может ли кто-нибудь помочь мне попытаться решить эту проблему?