.NETリモーティングチャネルを介したプロパティの読み取りに問題があります。これが私のクラスの始まりです:
[Serializable]
public class MachineID
{
private string mySystemDeviceSerial = null;
/// <summary>
/// Returns the hard drive serial that Windows is installed on.
/// </summary>
public string SystemDeviceSerial
{
get { return mySystemDeviceSerial; }
}
private string mySystemName = null;
/// <summary>
/// Returns the current name of the system.
/// </summary>
public string SystemName
{
get { return mySystemName; }
}
private string myLastError = string.Empty;
/// <summary>
/// Returns the last error that occurred. Returns string.Empty if no error has occurred.
/// </summary>
public string LastError
{
get { return myLastError; }
}
private int myPort = -2;
public int Port
{
get { return this.myPort; }
set { this.myPort = value; }
}
すべてのプロパティは、ローカルマシンで問題なくアクセスできます。ただし、.NETリモーティングチャネルを介してクライアントからPortプロパティを読み取ろうとすると、myPortに割り当てられている値ではなく、初期値の-2が取得されます。すべての文字列プロパティを正常に読み取ることができるため、私はこれに困惑しています。何か案は?このクラスを適切にシリアル化していないのですか?
このクラスとメンバーをシリアライズ可能にするために私が行ったのは、クラスの先頭に[Serializable]属性を追加することだけであることに注意してください。これがこれを行うための適切な方法であるかどうかはわかりません。おそらくこれが問題の一部である可能性がありますか?