首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何去除soap序列化中的前缀_x003C_?

如何去除soap序列化中的前缀_x003C_?
EN

Stack Overflow用户
提问于 2016-10-24 19:33:29
回答 1查看 830关注 0票数 0

我使用以下方法对soap信封执行序列化:

代码语言:javascript
复制
[Serializable]
class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}
class Program
{
    static void Main(string[] args)
    {
        Person person = new Person("Tom", 29);
        Person person2 = new Person("Bill", 25);
        Person[] people = new Person[] { person, person2 };

        SoapFormatter formatter = new SoapFormatter();
        using (FileStream fs = new FileStream("people.soap", FileMode.OpenOrCreate))
        {
            formatter.Serialize(fs, people);

            Console.WriteLine("Serialized");
        }

        using (FileStream fs = new FileStream("people.soap", FileMode.OpenOrCreate))
        {
            Person[] newPeople = (Person[])formatter.Deserialize(fs);

            Console.WriteLine("Deserialized");
            foreach (Person p in newPeople)
            {
                Console.WriteLine("Name: {0} --- Age: {1}", p.Name, p.Age);
            }
        }
        Console.ReadLine();
    }
}

我得到序列化的soap如下所示:

代码语言:javascript
复制
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<SOAP-ENC:Array SOAP-ENC:arrayType="a1:Person[2]" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/Serialization/Serialization%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull">
<item href="#ref-3"/>
<item href="#ref-4"/>
</SOAP-ENC:Array>
<a1:Person id="ref-3" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/Serialization/Serialization%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull">
<_x003C_Name_x003E_k__BackingField id="ref-5">Tom</_x003C_Name_x003E_k__BackingField>
<_x003C_Age_x003E_k__BackingField>29</_x003C_Age_x003E_k__BackingField>
</a1:Person>
<a1:Person id="ref-4" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/Serialization/Serialization%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20PublicKeyToken%3Dnull">
<_x003C_Name_x003E_k__BackingField id="ref-6">Bill</_x003C_Name_x003E_k__BackingField>
<_x003C_Age_x003E_k__BackingField>25</_x003C_Age_x003E_k__BackingField>
</a1:Person>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

如何去掉我的字段"x003C“和"Age”中的前缀"_x003E_k__BackingField“和”_x003E_k__BackingField“?

非常感谢你的回答。

EN

回答 1

Stack Overflow用户

发布于 2017-05-08 07:38:57

您不需要对Person类使用可序列化属性。移除它,然后再测试一次。除非您实际使用的是BinaryFormatter或SoapFormatter,否则您几乎肯定不需要它。

有关更多信息和了解原因:https://stackoverflow.com/a/31498951/7979199

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40226137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档