gpt4 book ai didi

xml - 更改从 OperationContract 命名空间继承的 DataContract 的前缀

转载 作者:行者123 更新时间:2023-12-04 17:06:19 24 4
gpt4 key购买 nike

请我需要从这个 XML 更改 FORMULARIO'S 前缀 (Tem: TO Men1:):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:men="http://Mensajes.General.inHeader" xmlns:tem="http://tempuri.org/" xmlns:men1="http://Mensajes.Formularios.Guardar">
<soapenv:Header>
<men:inHeader>
<DSUSUARIO></DSUSUARIO>
<PWDUSUARIO></PWDUSUARIO>
</men:inHeader>
</soapenv:Header>
<soapenv:Body>
<tem:Guardar> <!--OperationContract-->
<tem:FORMULARIO> <!--DataContract-->
</tem:FORMULARIO>
</tem:Guardar>
</soapenv:Body>
</soapenv:Envelope>

问题是我无法将 Namespace 设置为 OperationContract 以覆盖 Namespace Base。在这个追逐中,OperationContract 是 Xml 中 DataContract 的父项。

我的代码是:
[ServiceContract(Namespace = "http://tempuri.org/")]
public interface IComportamiento
{
[OperationContract]
[XmlSerializerFormat]
Resultado Guardar(FORMULARIO FORMULARIO);
}

public class Implementacion : IComportamiento
{
public Resultado Guardar(FORMULARIO FORMULARIO)
{
...
}
}

[DataContract]
public class FORMULARIO
{
}

最佳答案

MessageContract 可以更改 Root 元素的命名空间,但它会删除 operationcontract 的元素,并且返回类型也应该更改为 FORMULARIO。

[ServiceContract(Namespace = "http://tempuri.org/")]

public interface IComportamiento
{
[OperationContract]

FORMULARIO Guardar(FORMULARIO FORMULARIO);
}

[MessageContract(IsWrapped = true, WrapperName = "FORMULARIO", WrapperNamespace = "http://Mensajes.Formularios.Guardar")]
public class FORMULARIO
{

}

结果。
enter image description here

关于xml - 更改从 OperationContract 命名空间继承的 DataContract 的前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55852901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com