错误由于其保护级别无法访问。只有公共类型才能被处理 - 当使用XmlSerialiser作为内部类时

时间:2013-12-06 18:00:36

标签: c# class object xml-serialization

我正在创建的库DLL中有许多内部类。这些类可以通过一些公共方法访问。示例内部类是;

internal class MyClass
{
    internal int Id {get;set;}
    internal string Name {get;set;}
}

我需要在返回public方法之前序列化该对象。我正在尝试使用像

这样的XmlSerialise方法
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(MyObject.GetType());

但是当我尝试这个时,我得到了错误

  

错误由于其保护级别无法访问。只能处理公共类型

我如何克服这个问题,因为我想在库DLL中保持这些内部类是私有的,并且它们只能使用公共方法进行访问。

1 个答案:

答案 0 :(得分:3)

使用XmlSerializer序列化内部类型

此处的解决方案:http://blogs.msdn.com/b/sowmy/archive/2008/10/04/serializing-internal-types-using-xmlserializer.aspx

  

能够序列化内部类型是常见的请求之一   由XmlSerializer团队看到。这是人们的合理要求   运输图书馆。他们不想制作XmlSerializer类型   公正只是为了序列化。