以下代码中的MBV和MBR可以当作你驻留在Windows Serivce中由它控制的类,你可以暴露给程序域以外的程序。 using System; using System.Collections.Generic; using System.Text;namespace RemoteObject { public class MyObject:MarshalByRefObject { private int i = 0; private MBV _mbv; private MBR _mbr; public MyObject() { Console.WriteLine("激活"); } public MyObject(int k) { this.i = k; Console.WriteLine("激活"); } public int Add(int a, int b) { return a + b; } public int Count() { return ++i; } public MBV GetMBV() { return new MBV(100); } public MBR GetMBR() { return new MBR(200); } public void SetMBV(MBV mbv) { _mbv = mbv; } public int UseMBV() { return _mbv.Data; } public void SetMBR(MBR mbr) { _mbr = mbr; } public int UseMBR() { return _mbr.Data; } } [Serializable] public class MBV { private int _data; public MBV(int data) { _data = data; } public int Data { get { return _data; } set { _data = value; } } } public class MBR : MarshalByRefObject { private int _data; public MBR(int data) { _data = data; } public int Data { get { return _data; } set { _data = value; } } } }
using System;
using System.Collections.Generic;
using System.Text;namespace RemoteObject
{
public class MyObject:MarshalByRefObject
{
private int i = 0;
private MBV _mbv;
private MBR _mbr;
public MyObject()
{
Console.WriteLine("激活");
} public MyObject(int k)
{
this.i = k;
Console.WriteLine("激活");
} public int Add(int a, int b)
{
return a + b;
} public int Count()
{
return ++i;
} public MBV GetMBV()
{
return new MBV(100);
} public MBR GetMBR()
{
return new MBR(200);
} public void SetMBV(MBV mbv)
{
_mbv = mbv;
} public int UseMBV()
{
return _mbv.Data;
} public void SetMBR(MBR mbr)
{
_mbr = mbr;
} public int UseMBR()
{
return _mbr.Data;
}
} [Serializable]
public class MBV
{
private int _data;
public MBV(int data)
{
_data = data;
}
public int Data
{
get
{
return _data;
}
set
{
_data = value;
}
}
}
public class MBR : MarshalByRefObject
{
private int _data;
public MBR(int data)
{
_data = data;
}
public int Data
{
get
{
return _data;
}
set
{
_data = value;
}
}
}
}