GoogleProtocolBufferの使用にはPowerShellを使用する必要があります。言語固有のコンバーターが見つかりませんでした。protobuf-net(C#)を使用して.csコードを生成し、後で.dllファイルを生成しました。
見つかったすべてのアプローチにはNew-Objectの構築が含まれていましたが、パブリック静的クラスSerializerはprotobuf-net.dllで定義されているため、オブジェクト(クラスインスタンス)を作成できません-> New-Object:コンストラクターが見つかりません。タイプProtoBuf.Serializerの適切なコンストラクターが見つかりません。
$memory_stream = New-Object System.IO.MemoryStream
#######
$obj = new-object ControlInterface.EnableGate
$obj.GateId = 2
$obj.Day = 7
#######
$method = [ProtoBuf.Serializer]
$Serialize = $method.GetMethods() | Where-Object {
$_.Name -eq "Serialize" -and
$_.MetadataToken -eq "110665038"
}
$massive = @($memory_stream,$obj)
$closedMethod = $Serialize.MakeGenericMethod([ControlInterface.EnableGate])
$closedMethod.Invoke($method,$massive)
現在のエラーは次のとおりです。「2」引数を指定して「Invoke」を呼び出す際の例外:「タイプ「System.Management.Automation.PSObject」のオブジェクトをタイプ「System.IO.Stream」に変換できません。」
C#の追加コードの使用を回避し、PowerShell手段のみを使用して問題を解決することは可能ですか?