调用RemoteConfiguration.Configure(configFile)后修改设置?

时间:2010-11-18 14:14:41

标签: .net remoting configuration-files .net-remoting

我的应用程序调用{​​{1}}来设置.NET Remoting。但由于每次运行应用程序时都需要channels元素的portName属性不同,我必须以编程方式配置此特定设置。

这听起来非常简单(可能是 - 但我整天都在搜索谷歌的答案)。

到目前为止,我有:

RemotingConfiguration.Configure()

调试器向我显示RemotingConfiguration.Configure(Program.ConfigFilePath, false); IChannel[] regChans = ChannelServices.RegisteredChannels; IpcChannel ipcChannel = (IpcChannel)ChannelServices.GetChannel(regChans[0].ChannelName); 将是我需要添加条目的哈希表,例如ipcChannel._serverChannel._prop,但我根本看不到如何访问和修改它。

我知道我总是可以废弃* .config文件并以编程方式完成所有事情,但我真的不想丢掉大部分设置可以轻松编辑的好处。 / p>

["portName"] = uniquePortName返回后修改IpcClientChannel对象为时已晚?显然我可以编写自己的RemotingConfiguration.Configure()版本,但这似乎也不是正确的做法。

1 个答案:

答案 0 :(得分: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文件中读取这些设置中的任何一个,但重点是你必须为你可能想要支持的所有选项显式编码。)