private void GenerateTargetProperty()
{
EasyProperty property = CreateProperty("Target", typeof(object));
EasyMethod getMethod = property.CreateGetMethod();
MethodInfo baseMethod = typeof(MulticastDelegate).GetMethod("get_Target");
getMethod.CodeBuilder.AddStatement(
new ReturnStatement(new MethodInvocationExpression(baseMethod)));
// PropertyAttributes patts = PropertyAttributes.None;
// PropertyBuilder pbuilder = _delegateBuilder.DefineProperty("Target", patts, typeof(Object), null);
//
// MethodAttributes atts = MethodAttributes.Public|MethodAttributes.Virtual|MethodAttributes.SpecialName;
// MethodBuilder methodBuilder = _delegateBuilder.DefineMethod("get_Target",
// atts, CallingConventions.Standard, typeof(object), new Type[0]);
//
// ILGenerator gen = methodBuilder.GetILGenerator();
//
// gen.DeclareLocal( typeof(object) );
// gen.Emit(OpCodes.Ldarg_0);
// gen.Emit(OpCodes.Call, typeof(MulticastDelegate).GetMethod("get_Target"));
// gen.Emit(OpCodes.Stloc_0);
// gen.Emit(OpCodes.Ldloc_0);
// gen.Emit(OpCodes.Ret);
//
// pbuilder.SetGetMethod(methodBuilder);
}