Ich versuche, ein Type-Objekt in der folgenden Art und Weise zu serialisiert:Kann ich ein C# -Typ-Objekt serialisieren?
Type myType = typeof (StringBuilder);
var serializer = new XmlSerializer(typeof(Type));
TextWriter writer = new StringWriter();
serializer.Serialize(writer, myType);
Wenn ich das tue, serialisiert der Anruf wirft die folgende Ausnahme:
„Der Typ System.Text. StringBuilder wurde nicht erwartet Verwenden Sie das XmlInclude- oder SoapInclude-Attribut , um Typen anzugeben, die nicht statisch bekannt sind . "
Gibt es eine Möglichkeit für mich, das Type
Objekt zu serialisieren? Beachten Sie, dass ich nicht versuche, die StringBuilder
selbst zu serialisieren, sondern das Objekt Type
, das die Metadaten zur Klasse StringBuilder
enthält.
Warum den Typ serialisieren? Wenn die Deserialisierung nicht .Net ist, kann sie sie nicht verwenden, wenn Sie dann nur den vollständig qualifizierten Namen übergeben müssen. – Keith
Dieser genaue Code löst Ausnahme in .net 6.1: Es gab einen Fehler beim Generieren des XML-Dokuments. Auf System.RuntimeType kann aufgrund seiner Schutzstufe nicht zugegriffen werden. Nur öffentliche Typen können verarbeitet werden. – YMC