gpt4 book ai didi

.net - wcf 服务(类)级别的 OperationBehavior

转载 作者:行者123 更新时间:2023-12-01 12:57:50 24 4
gpt4 key购买 nike

目前,对于所有 wcf 操作,我必须将 OperationBehavior 属性(用于模拟)放在每个方法的顶部。

[OperationBehavior(Impersonation = ImpersonationOption.Allowed)]

为每个方法添加它似乎是在浪费时间。我需要的是消除将行为应用于所有可用操作的必要性。有没有办法把这个属性类放在级别上,以便它影响该服务类中的所有方法?

最佳答案

创建您自己的实现 IServiceBehavior 的属性,并将正确的操作行为应用于所有可用操作:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
public class AllowImpersonationAttribtute : Attribute, IServiceBehaviour
{
void IServiceBehavior.ApplyDispatchBehavior(ServiceDescription desc, ServiceHostBase host)
{
var operations = desc.Endpoints.SelectMany(e => e.Contract.Operations);
foreach (var operation in operations)
{
operation.Behaviors.Add(new OperationBehaviorAttribute{Impersonation = ImpersonationOption.Allowed});
}
}
... // remaining methods empty
}

关于.net - wcf 服务(类)级别的 OperationBehavior,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8714333/

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