我试图这样做:
Data4JS D4JS = (Data4JS)GlobalHelper.GetCurrentSession()["Data4JS"];
GlobalHelper.GetCurrentSession()["Data4JS"] = null;
return D4JS;
问题是它将D4JS设置为null,我真的不想将我的代码分成几个方法调用,我怎么能轻易实现这个?
答案 0 :(得分:2)
只需使用new关键字,这样就不会使用引用或克隆对象方法。
答案 1 :(得分:0)
在这种情况下,使用序列化进行深层复制。
答案 2 :(得分:0)
假设您的对象足够简单且具有公共属性,并且您需要的只是属性中的值,您可以执行与此类似的操作:
Data4JS D4JS = (Data4JS)GlobalHelper.GetCurrentSession()["Data4JS"];
Data4JS result = new Data4JS
{
//Set your result object to the one in
//session by manually copying over the property values
Property1 = D4JS.Property1;
};
GlobalHelper.GetCurrentSession()["Data4JS"] = null;
return result;
否则请使用Freeman建议的更清洁的方式来实现您的需求。