public TypeDefinition GenerateClass() { var commandClass = new TypeDefinition( GeneratedCommandClassNamespace , GeneratedCommandClassName , DefaultTypeDAttributesForCommand , Assets.TypeReferences.Object); commandClass.Interfaces.Add(new InterfaceImplementation(Assets.TypeReferences.ICommand)); var genericParameter = new GenericParameter("TParameter", commandClass); commandClass.GenericParameters.Add(genericParameter); AddFields(commandClass); AddConstructors(commandClass); AddDExecuteMethod(commandClass); AddDCanExecuteMethod(commandClass); Assets.AddCanExecuteChangedEvent(commandClass); ModuleDefinition.Types.Add(commandClass); Assets.DelegateCommandImplementationWasInjected = true; return(commandClass); }
internal void ImplementICommandInterface(TypeDefinition commandType) { commandType.Interfaces.Add(new InterfaceImplementation(Assets.TypeReferences.ICommand)); Assets.AddCanExecuteChangedEvent(commandType); AddNCanExecuteMethod(commandType); AddNExecuteMethod(commandType); }