Как вызвать сложный COM-метод из PowerShell?

Можно ли вызвать метод COM из PowerShell с использованием именованных параметров? Метод объекта COM I Я работаю с десятками параметров:

object.GridData( DataFile, xCol, yCol, zCol, ExclusionFilter, DupMethod, xDupTol,
    yDupTol, NumCols, NumRows, xMin, xMax, yMin, yMax, Algorithm, ShowReport,
    SearchEnable, SearchNumSectors, SearchRad1, SearchRad2, SearchAngle, 
    SearchMinData, SearchDataPerSect, SearchMaxEmpty, FaultFileName, BreakFileName, 
    AnisotropyRatio, AnisotropyAngle,  IDPower, IDSmoothing, KrigType, KrigDriftType, 
    KrigStdDevGrid, KrigVariogram, MCMaxResidual, MCMaxIterations, MCInternalTension, 
    MCBoundaryTension, MCRelaxationFactor, ShepSmoothFactor, ShepQuadraticNeighbors, 
    ShepWeightingNeighbors, ShepRange1, ShepRange2, RegrMaxXOrder, RegrMaxYOrder, 
    RegrMaxTotalOrder, RBBasisType, RBRSquared, OutGrid,  OutFmt, SearchMaxData, 
    KrigStdDevFormat, DataMetric, LocalPolyOrder, LocalPolyPower, TriangleFileName )

Большинство из этих параметров являются необязательными, а некоторые из них являются взаимоисключающими. В Visual Basic или Python с использованием модуля win32com вы можете использовать именованные параметры, чтобы указать только необходимое подмножество параметров. пример (на Python):

Surfer.GridData(DataFile=InFile,
                xCol=Options.xCol,
                yCol=Options.yCol,
                zCol=Options.zCol,
                DupMethod=win32com.client.constants.srfDupMedZ,
                xDupTol=Options.GridSpacing,
                yDupTol=Options.GridSpacing,
                NumCols=NumCols,
                NumRows=NumRows,
                xMin=xMin,
                xMax=xMax,
                yMin=yMin,
                yMax=yMax,
                Algorithm=win32com.client.constants.srfMovingAverage,
                ShowReport=False,
                SearchEnable=True,
                SearchRad1=Options.SearchRadius,
                SearchRad2=Options.SearchRadius,
                SearchMinData=5,
                OutGrid=OutGrid)

Я не могу понять, как вызвать этот объект из PowerShell таким же образом. Этот метод получает от клиента отдельную сущность. void UpdtaeCustomer (Клиент отключен от клиента); Мы придумали два ...

У нас есть служба WCF с методом обновления, который обновляет клиента в базе данных. Этот метод получает отдельную сущность от клиента.

void UpdtaeCustomer(Customer detachedCustomer);

Мы придумали два способа написать этот метод:

1)

context.CustomerSet.Attach(detachedCustomer);
context.ObjectStateManager.ChangeObjectState(detachedCustomer, entityState.Modified);
context.SaveChanges();

2)

Customer customer = context.GetObjectByKey(detachedCustomer.EntityKey);
context.ApplyCurrentValues<Customer>("CustomerSet", detachedCustomer);
context.SaveChanges();

Мы хотим рассмотреть минусы \ плюсы каждого метода. Первый имеет явное преимущество в том, что он имеет только одно обращение к БД. Но каковы плюсы второго метода. (или, может быть, они действуют по-другому)?

6
задан Benjamin 4 November 2013 в 12:25
поделиться