C# TransparentProxies 和数组大小调整

Posted

技术标签:

【中文标题】C# TransparentProxies 和数组大小调整【英文标题】:C# TransparentProxies and Array Resizing 【发布时间】:2013-06-25 15:01:36 【问题描述】:

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

我的 Profile 类有一组警报。

我正在向 Profile 类添加另外两个警报。这在本地有效,但是由于警报是作为数组实现的,因此远程的 Length 是两个短。

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

我试过了:

    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 中。)

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于C# TransparentProxies 和数组大小调整的主要内容,如果未能解决你的问题,请参考以下文章

Qt文档阅读笔记-QNetworkProxy::ProxyType解析(Qt设置Fiddler代理)

多维数组和 C# 中的数组数组有啥区别?

java和c#的字节数组转换问题

C#:在结构数组中查找和更改元素

Java 和 C# 中的多维数组

声明和实例化一个 c# 数组实际上是啥意思?