【问题标题】:OperationBehaviorAttribute inheritanceOperationBehavior属性继承
【发布时间】:2011-07-15 13:42:29
【问题描述】:

我的服务有基类。如果它在基类中定义并且我在派生类中覆盖方法,则属性 OperationBehavior 不适用。当然,我可以复制代码,但也许还有其他方法......

[服务合同] 公共接口IMyService { [运营合同] 无效 DoWork(); } 公共类 MyServiceBase { [操作行为(TransactionScopeRequired = true)] 公共虚拟无效 DoWork() { } } 公共类 MyService : MyServiceBase, IMyService { 公共覆盖无效 DoWork() { //没有事务,因为属性OperationBehavior不适用。 } }

【问题讨论】:

    标签: wcf


    【解决方案1】:

    您需要执行以下操作:

    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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-03
      • 2012-05-08
      • 2012-08-15
      • 2010-10-05
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      相关资源
      最近更新 更多