private void ImplementPropertyAccessorMethods(PropertyDefinition implementedProperty, MemberComposer propertyAccessorComposer) { if (RoleProperty.GetMethod != null) { var getterRoleGroup = Container.ResolveGroup(Role, RoleProperty.GetMethod); implementedProperty.GetMethod = (MethodDefinition)propertyAccessorComposer.Compose(getterRoleGroup, _accessSpecifier); } if (RoleProperty.SetMethod != null) { var setterRoleGroup = Container.ResolveGroup(Role, RoleProperty.SetMethod); implementedProperty.SetMethod = (MethodDefinition)propertyAccessorComposer.Compose(setterRoleGroup, _accessSpecifier); } }
private void ImplementEventAccessorMethods(EventDefinition implementedEvent, MemberComposer propertyAccessorComposer) { if (RoleEvent.AddMethod != null) { var addMethodRoleGroup = Container.ResolveGroup(Role, RoleEvent.AddMethod); implementedEvent.AddMethod = (MethodDefinition)propertyAccessorComposer.Compose(addMethodRoleGroup, _accessSpecifier); } if (RoleEvent.RemoveMethod != null) { var removeMethodRoleGroup = Container.ResolveGroup(Role, RoleEvent.RemoveMethod); implementedEvent.RemoveMethod = (MethodDefinition)propertyAccessorComposer.Compose(removeMethodRoleGroup, _accessSpecifier); } if (RoleEvent.InvokeMethod != null) { var invokeMethodRoleGroup = Container.ResolveGroup(Role, RoleEvent.InvokeMethod); implementedEvent.RemoveMethod = (MethodDefinition)propertyAccessorComposer.Compose(invokeMethodRoleGroup, _accessSpecifier); } }
private IOperationResult ComposeMemberGroups() { var result = new CompositeOperationResult(); var roleMemberGroups = _container.RetrieveMemberGroups(); var memberComposer = new MemberComposer(_targetType, _container); roleMemberGroups.ForEach(group => memberComposer.Compose(group)); result.Slurp(memberComposer); return result; }