0

尝试序列化通用列表时出现以下错误“System.Reflection.RuntimeParameterInfo 由于其保护级别而无法访问。只能处理公共类型”

这是我下面的代码

            XmlSerializer serializer = new XmlSerializer(typeof(List<System.Reflection.ParameterInfo>));
            XDocument document = new XDocument();
            using (XmlWriter xmlWriter = document.CreateWriter())
            {
                serializer.Serialize(xmlWriter, parameterList);
            }
            return document.Root.ToString();
4

1 回答 1

2

并非所有类型都是可序列化的。使用诸如 之类的序列化XmlSerializer程序,最好的方法是编写一个包含您感兴趣的部分的 DTO,例如:

public class Parameter {
    public string Name {get;set;}
    public string TypeName {get;set;}
    public bool ByRef {get;set;} 
}

然后从 中填充ParameterInfo,并序列。请注意,这里有些事情是有问题的,例如序列化 a 会非常不方便DefaultValue,除非您将其序列化为字符串并在接收器处将其解析回。

于 2012-07-10T13:18:30.553 回答