2013-06-25 43 views
0

C#TransparentProxies和阵列调整大小C#TransparentProxies和阵列调整大小

我有一个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;

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

回答

0

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

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

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

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