Exemplo n.º 1
0
        public void Provide(Type type, ComponentData data)
        {
            var shouldGenerateComponent = !type.ImplementsInterface <IComponent>();

            data.ShouldGenerateComponent(shouldGenerateComponent);
            if (shouldGenerateComponent)
            {
                data.SetObjectTypeName(type.ToCompilableString());
            }
        }
 ComponentData[] createDataForEvents(ComponentData data)
 {
     return(data.GetContextNames()
            .SelectMany(contextName =>
                        data.GetEventData().Select(eventData => {
         var dataForEvent = new ComponentData(data);
         dataForEvent.IsEvent(false);
         dataForEvent.IsUnique(false);
         dataForEvent.ShouldGenerateComponent(false);
         var eventComponentName = data.EventComponentName(eventData);
         var eventTypeSuffix = eventData.GetEventTypeSuffix();
         var optionalContextName = dataForEvent.GetContextNames().Length > 1 ? contextName : string.Empty;
         var listenerComponentName = optionalContextName + eventComponentName + eventTypeSuffix.AddListenerSuffix();
         dataForEvent.SetTypeName(listenerComponentName.AddComponentSuffix());
         dataForEvent.SetMemberData(new[] {
             new MemberData("System.Collections.Generic.List<I" + listenerComponentName + ">", "value")
         });
         dataForEvent.SetContextNames(new[] { contextName });
         return dataForEvent;
     }).ToArray()
                        ).ToArray());
 }