我有一個對象的集合。當我在該集合上添加一些對象時。它會保存該對象本身還是保存其引用。列表<T>:馬歇爾通過價值或馬歇爾通過參考
List<Student> myList;
Student std1 = new Student();
Student std2 = new Student();
myList.Add(std1);
myList.Add(std2);
myList將包含什麼? std1和std2的複製副本或這兩個對象的引用?
如果這個列表駐留在一些遠程位置我通過wcf服務訪問它。然後我在這個列表中添加對象。會發生什麼。這些對象將被添加MBV或MBR?
其實我有名單確定,我在這個列表中添加學生的對象..
去年我說想我有一些方案,這是其他機器上名單。我可以使用WCF服務訪問該程序。通過WCF服務獲得該計劃的參考。然後我調用Program.myList.Add(student)。現在將在該遠程機器上生成一個副本,並將添加到myList或引用將被保存?
其實我已經列出確定,我在這個列表中添加學生的對象.. 在最後我說,假如我有一些方案,這是其他機器上名單。我可以使用WCF服務訪問該程序。通過WCF服務獲得該計劃的參考。然後我調用Program.myList.Add(student)。現在將在該遠程機器上生成一個副本,並將添加到myList或引用將被保存? –
Mohsan
不WCF序列化對象併發送它們? – Svish
好的,學生是一個類還是一個結構?如果它是一個類,因此是一個引用類型,那麼你的列表仍然會保存引用。如果它是一個結構,你的列表將保存Student實例的值。 至於編組問題:MarshalByRefObject爲您提供了一個代理,並且框架將更新原始代碼。您沒有對原始文件進行實際參考。爲了獲得一份副本,您對此進行的更改不會反映在原始內容中。 –