2010-11-18 17 views
0

私のアプリケーションでは、.NET Remotingを設定するためにRemotingConfiguration.Configure()が呼び出されています。しかし、アプリケーションが実行されるたびにchannels要素のportName属性が異なる必要があるので、この特定の設定をプログラム的に構成する必要があります。RemoteConfiguration.Configure(configFile)を呼び出した後に設定を変更しますか?

とてもシンプルに聞こえますが(おそらく、私は一日中Googleから回答を探しています)。

RemotingConfiguration.Configure(Program.ConfigFilePath, false); 

IChannel[] regChans = ChannelServices.RegisteredChannels; 
IpcChannel ipcChannel = (IpcChannel)ChannelServices.GetChannel(regChans[0].ChannelName); 

デバッガがどの私は["portName"] = uniquePortNameようなエントリを追加する必要があるためにipcChannel._serverChannel._propは、ハッシュテーブルになることを私に示しているが、私は単純にアクセスする方法を参照して、これを変更することはできません。

は、これまでのところ私が持っています。

私はいつも* .configファイルをスクラップしてプログラム的に行うことができますが、実際にはのほとんどの設定を簡単に編集できるというメリットを捨てたくありません。

IpcClientChannelオブジェクトを変更するには遅すぎますか?RemotingConfiguration.Configure()が返されましたか?明らかに私はおそらくRemotingConfiguration.Configure()の自分のバージョンを書くことができましたが、それはどちらかを行う正しい方法のようには見えません。

答えて

0

私がしたかったことはできないと確信しました。

あなたのようないずれか使用RemotingConfiguration.Configure()または何かすることができます:あなたは

IDictionary channelProperties = new Hashtable(); 
    channelProperties.Add("authorizedGroup", "Everyone"); 
    channelProperties.Add("portName", "Client-" + Guid.NewGuid().ToString()); // Unique port name 
    IpcChannel channel = new IpcChannel(channelProperties, null, null); 
    ChannelServices.RegisterChannel(channel); 

をミックスし、一致することはできません。少なくとも、それはそうであるようです。

(もちろん、これらの設定は* .configファイルから読み取ることができますが、サポートする可能性があるすべてのオプションを明示的に記述する必要があります)

関連する問題