はい、MSDNのドキュメントは非常に明確です。
C#
public ClientCredentials Credentials { get; }
プロパティにはアクセサーのみがあり、get
アクセサーは設定されていません->読み取り専用です。
また、MSDNドキュメントで:
解説
ClientCredentialsオブジェクトは、エンドポイント動作のタイプとして保存され、Behaviorsプロパティを介してアクセスできます。
OnOpenedメソッドは、ファクトリのClientCredentialsオブジェクトの読み取り専用コピーを初期化します。
それで、あなたはここで何をしているのですか?
更新:クライアントプロキシがチャネルファクトリで使用することになっているユーザー資格情報を設定することはできません。とにかくそれを行う方法については、この優れたブログ投稿を参照してください-少し回り道をします:
- まず、デフォルトのエンドポイント動作をファクトリから削除します
- 次に、独自の資格情報をインスタンス化します
第三に、これらの新しいクレデンシャルをファクトリでの新しいエンドポイントの動作として設定します
// step one - find and remove default endpoint behavior
var defaultCredentials = factory.Endpoint.Behaviors.Find<ClientCredentials>();
factory.Endpoint.Behaviors.Remove(defaultCredentials);
// step two - instantiate your credentials
ClientCredentials loginCredentials = new ClientCredentials();
loginCredentials.UserName.UserName = CServiceCredentials.Instance.Username;
loginCredentials.UserName.Password = “Password123″;
// step three - set that as new endpoint behavior on factory
factory.Endpoint.Behaviors.Add(loginCredentials); //add required ones
少し奇妙で複雑に見えますが、これを達成する唯一の方法のようです!