C#TransparentProxies和数组调整大小

时间:2013-06-25 15:01:36

标签: c# arrays c#-2.0

C#TransparentProxies和Array Resizing

我有一个C#对象,类型为System.Runtime.Remoting.Proxies .__ TransparentProxy,它是远程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;

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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