(ICommunicationObject)proxy).State は、「リモート オブジェクトへのプロキシであるため、タイプ 'System.ServiceModel.ICommunicationObject' のインスタンスでフィールドを取得したり、メソッドを呼び出したりできません」というエラーを返します。
IClientChannel を使用してみましたが、それでも同じエラーが発生しました。これが私が工場を作った方法です
IPositionActions positionProxy;
ChannelFactory<IPositionActions> factory = new ChannelFactory<IPositionActions>(Binding, String);
positionProxy = factory.CreateChannel();
状態にアクセスして、その Channel の Faulted 状態を確認したい ClientChannel が開いていなくても、ChannelFactory の状態は開いています。そこで、ClientChannel の状態、positionProxy を確認したいと思いました。しかし、私は状態にアクセスできません。
デバッグすると、このような状態を取得できます。ただし、ServiceChannelProxy と System.Runtime.Remoting.Proxies.__TransparentProxy はプライベートであるため使用できません。
"((System.ServiceModel.Channels.CommunicationObject)(((System.ServiceModel.Channels.ServiceChannelProxy)((((System.Runtime.Remoting.Proxies.__TransparentProxy)(connectionManager.PositionProxy)))._rp)).serviceChannel) )。州"
状態にアクセスするためのアイデアがあれば教えてください。
ありがとうございました。