啟用在支援Remoting Application中跨越Application domain boundaries中的存取。
命名空間:System
組件:mscorlib.dll
有兩種型態的遠端物件
- Marshal-by-value objects:藉由「值」,這些物件被複製和傳遞,傳出應用程式定義域
- Marshal-by-reference objects:藉由使用「Proxy」,這些物件被存取外部應用程式定義域。Client需要「Proxy」來使用這些物件,去存取這些遠端的物件。
當跨越應用程式定義域界限來使用型別時,型別必須繼承自 MarshalByRefObject,並且不可以複製物件的狀態,因為物件的成員無法在建立成員的所在應用程式定義域外部使用。
using System;
using System.Runtime.Remoting;
using System.Security.Permissions;
public class SetObjectUriForMarshalTest {
class TestClass : MarshalByRefObject {
}
[SecurityPermission(SecurityAction.LinkDemand)]
public static void Main() {
TestClass obj = new TestClass();
RemotingServices.SetObjectUriForMarshal(obj, "testUri");
RemotingServices.Marshal(obj);
Console.WriteLine(RemotingServices.GetObjectUri(obj));
}
}
沒有留言:
張貼留言