gpt4 book ai didi

c# - ASMX Web 服务 Soap 扩展 - 如何将属性注入(inject)客户端代理类?

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:30 24 4
gpt4 key购买 nike

我尝试在客户端设置 soap 扩展属性。例如:

网络服务中的实现:

[AttributeUsage(AttributeTargets.Method)]
public class EncryptMessageAttribute : SoapExtensionAttribute
{
private string strKey="null";

public string StrKey
{
get { return strKey; }

set { strKey = value; }
}
}

肥皂扩展类:

public class EncryptMessage : SoapExtension
{
...
}

在网络上使用方法:

[WebMethod]
[EncryptMessage( StrKey = "pass")]
public string test2()
{
return "ok";
}

代理类中的实现:

[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/test", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[EncryptMessage( StrKey = "pass")]
public string test() {
object[] results = this.Invoke("test", new object[0]);
return ((string)(results[0]));
}

Soap 扩展属性是::[EncryptMessage( StrKey = "pass")]

我想在客户端设置 Soap Extension Attribute,然后再使用 Soap Extension,当我调用一些 web 方法时。

示例:在使用 soap 扩展之前,我调用了一些方法,在两侧设置 soap 扩展属性。有人可以帮助我吗?

最佳答案

首先,如果您可以为此使用 WCF,那么您应该这样做。 Microsoft 已声明 ASMX Web 服务是“遗留技术”,所有新的 Web 服务开发都应使用 WCF。

无论如何,请参阅 SoapExtensionReflectorSoapExtensionImporter类。请注意,这些仅适用于 .NET、ASMX 客户端。

关于c# - ASMX Web 服务 Soap 扩展 - 如何将属性注入(inject)客户端代理类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1398583/

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