c# - 无法识别指定的类型

标签 c# xml serialization xml-serialization

错误:

{"The specified type was not recognized: name='VitalsPlugin', namespace='', at ."}

代码:

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
{
}

最佳答案

经过多次修改后,我遇到了一个 definition xsi:类型。阅读定义后,我意识到这种类型指定了一个派生类。我将代码更新为

public class VitalsPlugin: Plugin
{
}

而且有效。

关于c# - 无法识别指定的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13707367/

相关文章:

xml - iPhone/iPad(iOS) 到 MySQL 服务器 - 数据处理

php - 使用php从mysql数据库反序列化数据数组

java - 如何在java中使用紧凑字节将对象序列化为字节数组

java - 如何告诉 cxf 将包装器类型保留在方法中?

c# - 隐藏 ServiceStack 服务请求和响应 DTO 中的一些公共(public)属性

c# - 构建 "*.DTPROJ"- 使用 devenv.exe 在构建服务器上使用 SSIS (Visual Studio 2012)

c# - 使用 C# 流畅界面的 FsCheck 不是空字符串生成器

c# - RedirectToAction 开始新 session

xml - 使用 Excel 查询在线 XML 文档

java - 如何应用 utf-8 字符集编码将 DOM 文档对象转换为 xml