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);
       }
 }
示例#3
0
 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;
 }