C#TransparentProxies和Array Resizing
我有一个C#对象,类型为System.Runtime.Remoting.Proxies .__ TransparentProxy,它是远程Profile类的代理。
我的个人资料类有一系列警报。
我要向Profile类添加两个警报。这在本地工作,但由于报警是作为一个数组实现的,因此远程端的长度是两个短路。
如何调整远程阵列的大小以便我可以再存储两个项目?
我试过了:
Array.Resize( remoteProfile.profiles[i].alarms, NEW_SIZE );
remoteProfile.profiles[i] = new Profile(remoteProfile.profiles[i]);
复制构造函数创建一个具有适当大小的新配置文件。
remoteProfile.profiles[i].ResizeAlarms();
ResizeAlarms创建一个新数组,复制旧值,然后将其分配给报警成员。
var newProfile = new Profile( remoteProfile.profiles[i] );
remoteProfile.profiles[i].alarms = newProfile.alarms;
有什么建议吗? (这是在C#2.0中。)
答案 0 :(得分:0)
我终于解决了这个问题。请留意未来的Google访问者。
问题来自于将自身标识为“system.runtime.remoting.proxies .__ transparentproxy”的对象。无论出于何种原因,我无法像普通对象那样修改它们。
幸运的是,在我的情况下,该对象只被复制一次然后被忽略了。
因此,为了解决这个问题,我为对象的类创建了一个复制构造函数,它复制了所有东西。然后我使用了theProfile = new Profile(remoteProfile);
。这允许我根据需要访问和修改内容。