错误,由于其保护级别而无法访问。仅公共类型可以处理-使用XmlSerialiser作为内部类[duplicate]

问题描述 投票:0回答:1

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

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

我需要序列化对象,然后再返回到公共方法。我正在尝试使用XmlSerialise方法,例如

System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(MyObject.GetType());

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

错误,由于其保护级别而无法访问。仅公共类型可以处理

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

c# class object xml-serialization
1个回答
2
投票

使用XmlSerializer序列化内部类型

解决方案:https://web.archive.org/web/20160108180230/http://blogs.msdn.com/b/sowmy/archive/2008/10/04/serializing-internal-types-using-xmlserializer.aspx

能够序列化内部类型是常见的请求之一由XmlSerializer团队看到。这是人们的合理要求运输库。他们不想使XmlSerializer类型只是为了序列化器而公开。

© www.soinside.com 2019 - 2024. All rights reserved.