データを収集してクラスPacket構造に格納するクライアントアプリケーションがあります。このクラスのオブジェクトをサーバーアプリケーションに送信できますか?..両方のアプリケーションは、LANネットワークで接続された異なるマシンで実行されます。
.Net Remotingでは、オブジェクトはサーバーでインスタンス化され、Objrefはクライアントと共有されます。これで、Packetクラスのこのオブジェクトが、クライアントによってアクティブ化されるオブジェクトとして使用されるリモート可能なオブジェクトとして使用されます。オブジェクトは、クライアントがアクティブ化したときに作成されます。
public class Packet : MarshalByRefObject {
public int svrnumber;
public string svrname;
[NonSerialized]
public static IObserver Observer;
public void MessageString(object value) {
Observer.Notify(value);
}
public static void Attach(IObserver observer) {
Observer = observer;
}
}
このクラスのPack(Object)をクライアント側で参照し、値を割り当てます。
Pack.svrname = "Bob";
Pack.svrnumber = 123456;
sample = (Object)Pack;
このサンプルオブジェクトをNotifyに渡します。Notify関数を使用してサーバーでこのサンプルオブジェクトを受け取り、ボックスを開いて値を取得します。
関数MessageStringを呼び出している間、セキュリティ制限Objrefにアクセスできないため、例外が発生します。
また、この問題に対する他のアプローチがあるかどうかも教えてください。または、すべてのクラス値をバイトに変換してからサーバーに送信してから再割り当てするSocketProgrammingアプローチを使用する必要があります。
ありがとう。