这是我的类(class):
[Serializable()]
[XmlRootAttribute("Language")]
public class Language : ISerializable
{
string Id {
get;
set;
}
string Part2B {
get;
set;
}
string Part2T {
get;
set;
}
string Part1 {
get;
set;
}
string Scope {
get;
set;
}
string LanguageType {
get;
set;
}
string RefName {
get;
set;
}
string Comment {
get;
set;
}
剪断
我从 Mono 网络服务返回它们的数组,如下所示:
[WebMethod()]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
public Language[] GetLanguages()
{
List<Language> languages;
languages = GetLanguageList();
return languages.ToArray();
}
但我得到的是:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfLanguage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<Language />
<Language />
<Language />
<Language />
</ArrayOfLanguage>
为什么成员没有被连载?
最佳答案
您的属性(property)未公开。
XmlSerialization only serialises public fields and properties .
XML serialization is the process of converting an object's public properties and fields to a serial format
default accessibility for fields and properties (实际上是所有成员)在 C# 中是私有(private)。
同时实现 ISerializable 对 XmlSerialization 没有影响(即 IXmlSerializable )。
[Serializable] 属性也没有,相反你需要 one or more of these .
关于c# - Mono 中的 XML 序列化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1353377/