public void AddEvent(CodeGenerationContext context, MutableEventInfo event_) { ArgumentUtility.CheckNotNull("context", context); ArgumentUtility.CheckNotNull("event_", event_); var addMethod = event_.MutableAddMethod; var removeMethod = event_.MutableRemoveMethod; var raiseMethod = event_.MutableRaiseMethod; var eventBuilder = context.TypeBuilder.DefineEvent(event_.Name, event_.Attributes, event_.EventHandlerType); DefineCustomAttributes(eventBuilder, event_); eventBuilder.SetAddOnMethod(context.MethodBuilders[addMethod]); eventBuilder.SetRemoveOnMethod(context.MethodBuilders[removeMethod]); if (raiseMethod != null) { eventBuilder.SetRaiseMethod(context.MethodBuilders[raiseMethod]); } }
public void Initialization_PrivateAccessors() { var addMethod = MutableMethodInfoObjectMother.Create( attributes: MethodAttributes.Private, returnType: typeof(void), parameters: new[] { new ParameterDeclaration(_handlerType, "handler") }); var removeMethod = MutableMethodInfoObjectMother.Create( attributes: MethodAttributes.Private, returnType: typeof(void), parameters: new[] { new ParameterDeclaration(_handlerType, "handler") }); var raiseMethod = MutableMethodInfoObjectMother.Create( attributes: MethodAttributes.Private, returnType: _returnType, parameters: new[] { new ParameterDeclaration(_argumentType, "") }); var event_ = new MutableEventInfo(_declaringType, _name, _attributes, addMethod, removeMethod, raiseMethod); Assert.That(event_.MutableAddMethod, Is.SameAs(addMethod)); Assert.That(event_.MutableRemoveMethod, Is.SameAs(removeMethod)); Assert.That(event_.MutableRaiseMethod, Is.SameAs(raiseMethod)); }
public void SetUp() { _declaringType = MutableTypeObjectMother.Create(); _name = "Event"; _attributes = (EventAttributes)7; _argumentType = ReflectionObjectMother.GetSomeType(); _returnType = ReflectionObjectMother.GetSomeOtherType(); _handlerType = typeof(Func <,>).MakeGenericType(_argumentType, _returnType); _addMethod = MutableMethodInfoObjectMother.Create( attributes: MethodAttributes.Public, returnType: typeof(void), parameters: new[] { new ParameterDeclaration(_handlerType, "handler") }); _removeMethod = MutableMethodInfoObjectMother.Create( attributes: MethodAttributes.Public, returnType: typeof(void), parameters: new[] { new ParameterDeclaration(_handlerType, "handler") }); _raiseMethod = MutableMethodInfoObjectMother.Create( attributes: MethodAttributes.Public, returnType: _returnType, parameters: new[] { new ParameterDeclaration(_argumentType, "") }); _event = new MutableEventInfo(_declaringType, _name, _attributes, _addMethod, _removeMethod, _raiseMethod); }
public EventInfo GetGeneratedEvent(MutableEventInfo mutableEvent) { return((EventInfo)GetGeneratedMember(mutableEvent)); }
public void Initialization_NoRaiseMethod() { var event_ = new MutableEventInfo(_declaringType, _name, _attributes, _addMethod, _removeMethod, null); Assert.That(event_.MutableRaiseMethod, Is.Null); }