0

C# TransparentProxies 和数组大小调整

我有一个 System.Runtime.Remoting.Proxies.__TransparentProxy 类型的 C# 对象,它是远程 Profile 类的代理。

我的 Profile 类有一系列警报。

我正在向 Profile 类添加另外两个警报。这适用于本地端,但由于警报是作为数组实现的,远程端的长度是两个短。

如何调整远程数组的大小以便可以再存储两个项目?

我试过了:

  1. Array.Resize( remoteProfile.profiles[i].alarms, NEW_SIZE );

  2. remoteProfile.profiles[i] = new Profile(remoteProfile.profiles[i]);

    复制构造函数创建一个具有适当大小的新配置文件。

  3. remoteProfile.profiles[i].ResizeAlarms();

    ResizeAlarms 创建一个新数组,复制旧值,然后将其分配给警报成员。

  4. var newProfile = new Profile( remoteProfile.profiles[i] ); remoteProfile.profiles[i].alarms = newProfile.alarms;

有什么建议么?(这是在 C# 2.0 中。)

4

1 回答 1

0

我终于解决了这个问题。注意未来的 Google 访问者。

问题来自将自己标识为“system.runtime.remoting.proxies.__transparentproxy”的对象。无论出于何种原因,我都无法像普通对象一样修改它们。

幸运的是,在我的情况下,该对象只复制了一次,然后就被忽略了。

因此,为了解决这个问题,我为对象的类创建了一个复制构造函数,它复制了所有内容。然后我用theProfile = new Profile(remoteProfile);. 这使我可以根据需要访问和修改内容。

于 2013-06-25T21:04:24.373 回答