次の例では、「[One xmlns=''] は予期されていませんでした。」例外
public abstract class BaseClass{ }
[XmlRoot("One")]
public class ChildOne : BaseClass {}
[XmlRoot("Two")]
public class ChildTwo : BaseClass { }
class Program
{
private static void Main(string[] args)
{
var ser = new XmlSerializer(typeof (BaseClass), new Type[] {typeof (ChildOne), typeof (ChildTwo)});
var obj1 = ser.Deserialize(new StringReader(@"<?xml version=""1.0""?><One></One>"));
var obj2 = ser.Deserialize(new StringReader(@"<?xml version=""1.0""?><Two></Two>"));
}
}
XML をデシリアライズする必要があります (私が生成したものではありません)。ルート タグには、別のクラスにマップする必要がある別の名前が付いている場合があります。
PS。このような質問がたくさんあることは知っています。私はそれらを研究しましたが、私の問題はまだ解決されていません。