指定的类型未被识别。

3

错误:

{"指定的类型未被识别:名称='VitalsPlugin',命名空间='',位于。"}

代码:

public class SimpleSerializer
{
    static void Main()
    {
        string xml = "<Plugin xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"VitalsPlugin\" ID=\"eaded5f3-7019-47b9-8f9f-e7c1879774f4\"><CopyForwardChecked>true</CopyForwardChecked></Plugin>";
        StringReader reader = new StringReader(xml);
        var result = Deserialize(reader);
    }

    static Plugin Deserialize(TextReader xml)
    {
        XmlSerializer xsr = new XmlSerializer(typeof(Plugin), new Type[] {typeof(VitalsPlugin)});
        Plugin result = xsr.Deserialize(xml) as Plugin;

        return result;
    }
}

其他有用的代码:

[XmlInclude(typeof(VitalsPlugin))]
public class Plugin
{
}

public class VitalsPlugin
{
}
1个回答

8

经过多次的摸索,我找到了一个有关于 xsi:type 定义的文档。在阅读了该文档之后,我意识到它指定了一个派生类。我更新了代码:

public class VitalsPlugin: Plugin
{
}

它能够正常运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接