gpt4 book ai didi

wcf - 以编程方式和全局添加自定义 WCF 客户端端点行为扩展

转载 作者:行者123 更新时间:2023-12-04 12:42:56 25 4
gpt4 key购买 nike

我需要向我的 WCF 客户端端点添加自定义行为扩展。我尝试通过配置执行此操作,但被经常提到的错误所困扰,即 WFC 配置无法正确解析类型名称。那么我可以以编程方式执行此操作吗?

我无法在运行时修改配置部分,因为它们是只读的。我知道如果我获得了客户端代理的实例(即 ClientBase),我可以将我的自定义行为的实例添加到它的 Endpoint.Behaviors 中。但是,我必须为每个实例都这样做。

我可以全局访问端点并预先添加它们(例如在 Global.asax 中),还是这些端点被实例化并暂时丢弃?

最佳答案

您应该能够在代码中将行为添加到客户端,如下所示:

IMyEndpointBehavior behavior = client.Endpoint.Behaviors.Find<IMyEndpointBehavior>();

if(behavior == null)
{
client.Endpoint.Behaviors.Add(new MyEndpointBehaviorImplementation());
}

第一行将检查该行为是否已被应用以避免应用它两次。如果它还没有被应用( .Find() 调用返回空值),那么您可以以编程方式将该行为添加到您的客户端类。

显然,您需要在第一次调用服务之前完成所有这些操作。一旦你这样做了,你就不能再改变客户端了。

马克

关于wcf - 以编程方式和全局添加自定义 WCF 客户端端点行为扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1195022/

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