using System.Runtime.Remoting.Messaging;
using System.Runtime.Remoting.Proxies;
namespace ConsoleApplication18
#region Здесь код изменять нельзя
public sealed class ClassA
#region Здесь код изменять нельзя
public sealed class ClassB
#region Здесь код изменять нельзя
public void Do(ref ClassA a)
class ClassBProxy:RealProxy
public ClassBProxy() : base(typeof (ClassB))
public override IMessage Invoke(IMessage msg)
IMethodCallMessage call = msg as IMethodCallMessage;
args[0] = new ClassA {Value = 100};
return new ReturnMessage(null, args, args.Length, call.LogicalCallContext, call);
public static void Main(string[] args)
#region Для класс Program изменять код только здесь
ClassB b = (ClassB) new ClassBProxy().GetTransparentProxy();
bool result = Process(b);
Console.WriteLine(result);
public static bool Process(ClassB b)
ClassA a1 = new ClassA();
return a1.Value == a2.Value;