2010-11-18 22 views
0

Uygulamam, .NET Remoting uygulamasını kurmak için RemotingConfiguration.Configure() numaralı telefonu arar. Ancak, uygulamanın çalıştırıldığı her defasında farklı olacak şekilde kanal elemanının portName özniteliğine ihtiyaç duyduğumdan, bu ayarı programsal olarak yapılandırmalıyım.RemoteConfiguration.Configure (configFile) çağrıldıktan sonra ayarları değiştirin.

Kulağa çok basit geliyor (ve muhtemelen - ama tüm gün Google'ı bir cevap için araştırıyorum).

RemotingConfiguration.Configure(Program.ConfigFilePath, false); 

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

ayıklayıcı hangi ı ["portName"] = uniquePortName gibi bir giriş eklemek gerekecek ipcChannel._serverChannel._prop karma tablo olacağını bana gösteriyor, ama ben sadece erişmek için nasıl görmek ve bu değiştiremezsiniz:

Şimdiye kadar var .

ben hep * .config dosyasını hurda ve programlama şeyi yapabileceğini biliyorum, ama gerçekten kolayca düzenlenebilir ayarların çoğunu sahip olmanın avantajlarını atmak istemiyorum .

RemotingConfiguration.Configure() bir kez döndürdüğünde bir IpcClientChannel nesnesini değiştirmek için çok mu geç? Açıkçası muhtemelen kendi versiyonum olan RemotingConfiguration.Configure()'u yazabiliyordum, ama bu da işleri yapmanın Doğru Yolu gibi görünmüyor.

cevap

0

Yapmak istediğim şeyin mümkün olmadığını belirledim.

Sen gibi ya kullanım RemotingConfiguration.Configure()veya şey olabilir: Sen

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); 

karıştırmak ve maç olamaz. En azından, durum böyle görünüyor.

(Elbette hala * .config dosyasından bu ayarlardan herhangi birini okuyabilir, ancak nokta desteklediğiniz isteyebileceğiniz tüm seçenekleri için açıkça kod zorunda olduğunu.)

İlgili konular