c# - Mono 中的 XML 序列化问题

标签 c# mono xml-serialization

这是我的类(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/

相关文章:

c# - MsBuild PostBuild 目标

c# - 如何在 ASP.NET MVC/SQL 应用程序中正确编码外来重音字符(请提供 C-R-U 示例)

c# - 在 Apache/mod_mono 上使用 MySQL 部署 ASP.NET MVC Internet 应用程序

c# - 系统.TypeLoadException : 'VTable setup of type AndroidX.AppCompat.View.Menu.MenuItemImpl failed'

.net - 如何使用 .NET 控制 xml 序列化的 <?xml ?> 部分?

c# - 将私有(private)字段标记为只读有什么意义吗?

c# - 背景 html CHM

c# - 从 UIViewController (MonoTouch) 使用相机拍照

c# - XML 序列化程序文件名

c# - XML 序列化命名空间和 XSD 生成