私はそれ自身のアセンブリに手書きの WCF プロキシを持っています。それは非常に簡単です:
public class MyServiceClient : ClientBase<IMyService>, IMyService
{
public MyServiceClient()
{
}
public MyServiceClient(string endpointConfigurationName) :
base(endpointConfigurationName)
{
}
}
これをPowershellスクリプトにロードしています:
Add-Type -Path "$LocalPath\MyService.Client.dll"
Add-Type -Path "$LocalPath\MyService.Contracts.dll"
次に、スクリプト自体ではなく、構成で定義されたエンドポイントを使用してクライアントをインスタンス化できるように、(SO に関する他の投稿に従って) App.config を設定しようとしています。
[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", "$LocalPath\MyService.Client.dll.config")
AppDomain を確認しましたが、構成ファイルがそのConfigurationFile
プロパティとして設定されています。
クライアントのインスタンスを作成するとき:
$endpointName = "MyServiceHttpEndpoint" # defined in the app.config file
$myclient = New-Object MyService.Client.MyServiceClient($endpointName)
それは言って倒れます:
Exception calling ".ctor" with "1" argument(s): "Could not find endpoint element with name 'MyServiceHttpEndpoint' and contract 'MyService.Contracts.IMyService' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this name could be found in the client element."
何か案は?スクリプト ファイルに手動でエンドポイントを作成したくありません。構成から読み取る必要があります。