So fügen Sie dem Root-C # -Objekt XmlSerializer eine xsi-Schemazuordnung hinzu

Ich verwende XmlSerializer, um ein Objekt zu erstellen, das eine XML-Datei darstellt, und möchte jetzt eine Schema-Zuordnung zum Rootelement meiner XML-Datei hinzufügen. Ich kann Namespaces wie die folgenden hinzufügen

        XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
        System.IO.FileStream fs = new FileStream(@"C:\test.xml", FileMode.Create);
        TextWriter writer = new StreamWriter(fs, new UTF8Encoding());

        XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
        ns.Add("xy","http://www.w3.org/2005/08/addressing");
        ns.Add("xlink","http://www.w3.org/1999/xlink");
        serializer.Serialize(writer, myObject, ns);

Aber wie füge ich einxsi:schemalocation Attribut für mein Root-Element in meinem C # -Code. Namespace wurde mit einem einfachen hinzugefügtns.Add(). Ich möchte vermeiden, mit der generierten c # -Klasse xsd.exe herumzuspielen. Oder muss ich die generierte c # -Klasse manuell bearbeiten und dem Stammelement meiner XML-Datei ein Attribut hinzufügen?

BEARBEITEN: Ich habe Beispiele gesehen, in denen ich mein c # manuell bearbeiten muss, aber es muss eine Möglichkeit geben, dies im Code zu tun !! Wenn wir unserem Stammelement Namespaces hinzufügen können, warum sollte es dann nicht möglich sein, Schemazuordnungen hinzuzufügen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage