当前位置:  开发笔记 > 编程语言 > 正文

如何自定义WCF XML序列化

如何解决《如何自定义WCFXML序列化》经验,为你挑选了0个好方法。

我们有一个现有的SOAP Web服务接口,我们希望使用WCF为新应用程序实现它.除了一个小细节外,这似乎工作得很好.函数返回类型的XML命名空间必须与Web服务本身的XML命名空间不同.而对于我的生活,我无法让它发挥作用.

我用一个小样本项目重新创建了同样的问题.WCF界面:

[XmlSerializerFormat]
[ServiceContract(Namespace = "urn:outer-namespace")]
public interface IService1
{
    [OperationContract]
    MyClass DoStuff(int value);
}

[Serializable]
public class MyClass
{
    [XmlElement(ElementName = "DataString")]
    public string MyString { get; set; }
}

Web服务实现:

    public class Service1 : IService1
{
    public MyClass DoStuff(int value)
    {
        return new MyClass { MyString = "Wooh!" };
    }
}

然后将此Web服务的响应序列化为:(省略SOAP内容)

  
     
        Wooh!
     
  

但是我们希望是xmlns ="urn:inner-namespace".

我尝试在接口函数或Web服务函数上添加[return:XmlElement(...)],但这不需要.此外,MyClass类定义上的[XmlType]或[XmlRoot]不起作用.

有没有人知道如何更改作为WCF Web服务函数返回值的对象的序列化XML名称空间(或元素名称)?

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有