4
作爲依賴注入的初步步驟,我正在嘗試將一些基於接口的抽象改造爲遺留代碼。遺留代碼包含我正在努力封裝的lambda使用。下面是現有的λ用法:在執行之前傳遞lambda表達式的方法參數類型
private void MethodAaa(EntityA a, EntityB a, int someInt) {...}
private void MethodBbb(DateTime date, EntityA e) {...}
_commandObjectFromThirdPartyLibrary.Execute(() => MethodAaa(a, b, c));
_commandObjectFromThirdPartyLibrary.Execute(() => MethodBbb(d, e));
我想路線經由一個共同的基類的方法的執行的λ如下:
base.CommonExecute(() => MethodAaa(a, b, c));
base.CommonExecute(() => MethodBbb(d, e));
base.CommonExecute(Action<???> lamdaExpression)
{
_commandObjectFromThirdPartyLibrary.Execute(lamdaExpression);
}
有人可以提供的如何聲明base.CommonExecute一個例子( ?)正確?
我覺得我越來越接近,但獲得乾淨的編譯我不得不使用下面的.Execute(()=> lambdaExpression());第三方Execute()方法的參數簽名是奇數,它是一些內部的UnitOfWork類型。在我的問題中引用的代碼的遺留版本一直在工作。 – camelCase 2012-04-23 16:43:45