Castle.DynamicProxy.Builder.CodeBuilder.EasyProperty.CreateGetMethod C# (CSharp) Method

CreateGetMethod() public method

public CreateGetMethod ( ) : Castle.DynamicProxy.Builder.CodeBuilder.EasyMethod
return Castle.DynamicProxy.Builder.CodeBuilder.EasyMethod
		public EasyMethod CreateGetMethod()
		{
			return CreateGetMethod(
				MethodAttributes.Public | MethodAttributes.Virtual | MethodAttributes.SpecialName);
		}

Same methods

EasyProperty::CreateGetMethod ( MethodAttributes attrs ) : Castle.DynamicProxy.Builder.CodeBuilder.EasyMethod

Usage Example

Ejemplo n.º 1
0
        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);
        }