.net remoting函数调用传对象作入参与传对象引用作入参的区别

1. 关于.net remoting生存期的问题
  如果不熟悉.net remoting生存期问题,可能会出现莫名其妙的调用对象被销毁,其实这是.net remoting生存期到了,
  一般在服务端应用,都希望永久不过期,于是重写下面函数。
    /// <summary>
    /// 永久不失效
    /// </summary>
    /// <returns></returns>
    public override Object InitializeLifetimeService()
    {
        return null;
    }    
    返回null表示永久不失效。
2. .net remoting调用对象的值的修改问题,当希望调用remoting方法后,传入的对象值能在远程对象中改变,一定要传引用。
对比以下测试
2.1 传递对象,不通过remoting调用
    public void TestList(List<int> dataList)
    {
        dataList.Add(100);
    }    
    public void Test()
    {
        List<int> dataList = new List<int>();
        TestList(dataList);
    }    
    调用Test(),dataList元素加入了100.    
    现在改为remoting调用TestList,这时100并没有加入dataList,返回还是空的列表。
2.2 传对象引用,不通过remoting调用
    public void TestList(ref List<int> dataList)
    {
        dataList.Add(100);
    }
    public void Test()
    {
        List<int> dataList = new List<int>();
        TestList(ref dataList);
    }    
    调用Test(),毫无疑问,dataList元素加入了100.
    现在改为remoting调用TestList,这时dataList元素加入了100,和不通过remoting调用一样.
    
   通过以上例子,.net remoting对象调用传入引用才能改变其内容和值,具体什么原因未知。

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值