public AspectsMap(IAspectMemebrsCollection aspectMembers) { var mapper = new AspectAttributesMemberMatcher(aspectMembers); map = new List<AspectMap>(mapper); EnsureValidAspects(map); }
public AspectAttributesMemberMatcher(IAspectMemebrsCollection aspectMembersCollection) { registry = new ConcurrentDictionary <int, AspectMap>(); CollectEventsAspectDefinitions(aspectMembersCollection); CollectMethodsAspectDefinitions(aspectMembersCollection); CollectPropertiesAspectDefinitions(aspectMembersCollection); }
public AspectsMap(IAspectMemebrsCollection aspectMembers) { var mapper = new AspectAttributesMemberMatcher(aspectMembers); map = new List <AspectMap>(mapper); EnsureValidAspects(map); }
public AspectAttributesMemberMatcher(Type aspectDeclaringType, IAspectMemebrsCollection aspectMembersCollection) { Values = aspectMembersCollection.Select(aspectMembers => { var aspects = aspectMembers.Members.SelectMany(member => { var onMethodBoundaryAspects = member.GetCustomAttributes <OnMethodBoundaryAspectAttribute>(); var methodInterceptionAspects = member.GetCustomAttributes <MethodInterceptionAspectAttribute>(); var onMethodBoundaryAspectDefinitions = onMethodBoundaryAspects.Select(aspect => { return(new OnMethodBoundaryAspectDefinition(aspect, aspectDeclaringType, aspectMembers.Target)); }); var methodInterceptionAspectDefinitions = methodInterceptionAspects.Select(aspect => { return(new MethodInterceptionAspectDefinition(aspect, aspectDeclaringType, aspectMembers.Target)); }); return(methodInterceptionAspectDefinitions.Cast <IAspectDefinition>() .Concat(onMethodBoundaryAspectDefinitions)); }); var aspectsCollection = new AspectDefinitionCollection(aspects) as IAspectDefinitionCollection; return(Tuple.Create(aspectMembers.Target, aspectsCollection)); }); }
public CompositeMemberMapper(IAspectsMap aspectMap, IAspectMemebrsCollection aspectMembersCollection) { MapEvents(aspectMap, aspectMembersCollection.Events); MapMethods(aspectMap, aspectMembersCollection.Methods); MapProperties(aspectMap, aspectMembersCollection.Properties); }
public AspectsMap(Type compositeType, IAspectMemebrsCollection aspectMembers) { matcher = new AspectAttributesMemberMatcher(compositeType, aspectMembers); map = new List <AspectMap>(matcher.Select(tuple => new AspectMap(tuple.Item1, tuple.Item2))); EnsureValidAspects(map); }