Wcf 操作行为属性继承
我的服务有基类。若在基类中定义了属性OperationBehavior,并且在派生类中重写了方法,则该属性OperationBehavior不适用。当然,我可以复制代码,但也许还有其他方法 [ServiceContract] public interface IMyService { [OperationContract] void DoWork(); } public class MyServiceBase { [OperationBehavior(TransactionScopeRequired = true)] public virtual void DoWork() { } } public class MyService : MyServiceBase, IMyService { public override void DoWork() { //No Transaction, because attribute OperationBehavior doesn't apply. } } [服务合同] 公共接口IMyService { [经营合同] 无效销钉(); } 公共类MyServiceBase { [操作行为(TransactionScopeRequired=true)] 公共虚拟空工作() { } } 公共类MyService:MyServiceBase,IMyService { 公共覆盖无效DoWork() { //没有事务,因为属性OperationBehavior不适用。 } }Wcf 操作行为属性继承,wcf,Wcf,我的服务有基类。若在基类中定义了属性OperationBehavior,并且在派生类中重写了方法,则该属性OperationBehavior不适用。当然,我可以复制代码,但也许还有其他方法 [ServiceContract] public interface IMyService { [OperationContract] void DoWork(); } public class MyServiceBase {
您需要执行以下操作:
public class MyServiceBase
{
[OperationBehavior(TransactionScopeRequired = true)]
public void DoWork()
{
DoWorkImpl();
}
protected virtual DoWorkImpl()
{
}
}
public class MyService : MyServiceBase, IMyService
{
protected override void DoWorkImpl()
{
//Should have a Tx here now
}
}