5

我有 2 节课:

    public class testClass1
    {
        public string Name { get; set; }
        public testClass2 testClass2Object { get; set; }
    }

    public class testClass2
    {
        public testClass2() { }

        public testClass2(int i) { TestProperty = i; }

        public int TestProperty { get; set; }
    }

我想返回头等舱的对象webMethod

    [WebMethod]
    public testClass1 testMethod()
    {
        testClass1 test = new testClass1();
        test.Name = "stackoverflow";
        test.testClass2Object = new testClass2(2);
        return test;
    }

但我没有testClass2testClass1对象中获取属性值。

我尝试[Serializable] [XmlInclude(typeof(testClass2))]了注释,但没有任何改变。有什么建议么?

4

2 回答 2

1

如果我“按原样”运行代码并调用 testMethod(),我得到...

<testClass1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
     <Name>stackoverflow</Name>
     <testClass2Object>
          <TestProperty>2</TestProperty>
     </testClass2Object>
</testClass1>

你期待不同的东西吗?也许我错过了一些东西。

如果这是一个更大项目的一部分,也许可以尝试将此代码放入一个新项目中,看看它是否可能是设置或其他配置类型的问题。

于 2013-04-30T05:52:18.777 回答
0

我运行你的代码,输出是我所期望的。您应该使用 xml 解析从 testclass2 获取数据。

编辑

我建议使用 Web API 而不是 obsolete ASMX,后者使用 SOAP 在输出中生成大量非结构化、无模式的 XML。

Web-API 具有快速且轻量级的输出,您可以将 JSON 和 XML 格式作为输出。非常健壮!

于 2013-05-04T07:19:35.463 回答