我们有一个.Net对象,它有一个静态委托(数据访问策略),必须在实例化对象之前设置它。委托也可以通过构造函数重载之一传入。从PowerShell设置静态委托属性(或将委托传递给构造函数)
我有另一个对象,有委托,我需要设置,但我无法弄清楚在PowerShell中如何做到这一点。有谁知道如何设置静态委托属性或将委托传递给PowerShell中的构造函数?
我想要做一些与此类似:
[DALObject]$db = New-Object DALObject;
[UnitOfWork]::Strategy = $db::CreateContext;
或
[DALObject]$db = New-Object DALObject;
[UnitOfWork]$uow = New-Object UnitOfWork($db::CreateConext);
仅供参考我试图重现媲美C#代码:
DalObject db = new DALObject();
UnitOfWork.Strategy = db.CreateContext;
或
UnitOfWork uow = new UnitOfWork(db.CreateContext);
编辑:为了澄清战略是一个静态的代表
Public static Func<DataContext> Strategy
和createContext的,我想设置为委托的实例方法,通过设置静态属性,或者在方法传递给构造函数。
另一种选择是,如果有出现在PowerShell中的方式来创建在C#中的匿名委托这样的:
UnitOfWork.Strategy = delegate()
{
var ctx = db.CreateContext();
return ctx;
};
如果你试图像'$ db.CreateContext'那样访问'CreateContext',它可能会工作。 (从您的C#示例看起来像'CreateContext'不是静态属性,而是实例属性) – stej 2010-08-23 19:57:15