У нас есть объект .Net, имеющий статический делегат (стратегия доступа к данным), который должен быть установлен до того, как будет создан экземпляр объекта. Делегат также может быть передан через одну из перегрузок конструктора.
У меня есть еще один объект, делегат которого мне нужно установить, но я не могу понять в 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;
};