public EventBrokerFieldTypeDefinition(EventInfo @event, EventBrokerResolvedType eventBrokerResolvedType, TypeBuilder typeBuilder, Type eventBrokerGeneratedType)
        {
            string fieldName = null;

            Event                         = @event;
            EventBrokerType               = eventBrokerGeneratedType;
            InvokeMethodName              = "Invoke{0}".Fmt(@event.Name);
            EventInterceptionArgs         = eventBrokerResolvedType.EventInterceptionArgs;
            EventBrokerDelegateType       = eventBrokerResolvedType.EventBrokerInvokeDelegateType;
            EventInterceptionContractArgs = eventBrokerResolvedType.EventInterceptionContractArgs;
            fieldName                     = "EventBroker_{0}".Fmt(Interlocked.Increment(ref eventBrokersCounter)).ToUniqueName();
            fieldBuilderDefinition        = new FieldBuilderDefinition(eventBrokerResolvedType.EventBrokerFieldType, typeBuilder, fieldName, fieldAttributes);
        }
        public EventBrokerFieldTypeDefinition(EventInfo @event, EventBrokerResolvedType eventBrokerResolvedType, TypeBuilder typeBuilder, Type eventBrokerGeneratedType)
        {
            string fieldName = null;

            Event = @event;
            EventBrokerType = eventBrokerGeneratedType;
            InvokeMethodName = "Invoke{0}".Fmt(@event.Name);
            EventInterceptionArgs = eventBrokerResolvedType.EventInterceptionArgs;
            EventBrokerDelegateType = eventBrokerResolvedType.EventBrokerInvokeDelegateType;
            EventInterceptionContractArgs = eventBrokerResolvedType.EventInterceptionContractArgs;
            fieldName = "EventBroker_{0}".Fmt(Interlocked.Increment(ref eventBrokersCounter)).ToUniqueName();
            fieldBuilderDefinition = new FieldBuilderDefinition(eventBrokerResolvedType.EventBrokerFieldType, typeBuilder, fieldName, fieldAttributes);
        }