public InterfaceImplementationWeaver(ConstructorWeaver constructorWeaver, MethodWeaver methodWeaver) { this.constructorWeaver = constructorWeaver; this.methodWeaver = methodWeaver; this.objectTypeReference = WeavingInformation.ReferenceFinder.GetTypeReference(typeof(object)); this.objectConstructorReference = WeavingInformation.ReferenceFinder.GetMethodReference(this.objectTypeReference, x => x.IsConstructor); }
public static void Execute() { IEnumerable<TypeDefinition> typesToProxy = WeavingInformation.ModuleDefinition.Types .Where(HasStaticProxyAttribute) .ToList(); var constructorWeaver = new ConstructorWeaver(); var methodWeaver = new MethodWeaver(); var interfaceImplementationWeaver = new InterfaceImplementationWeaver(constructorWeaver, methodWeaver); var classDecorationWeaver = new ClassDecorationWeaver(constructorWeaver, methodWeaver); ImplementInterfaces( typesToProxy.Where(x => x.IsInterface), interfaceImplementationWeaver); DecorateClasses(classDecorationWeaver, typesToProxy.Where(x => x.IsClass).ToList()); }
public ClassDecorationWeaver(ConstructorWeaver constructorWeaver, MethodWeaver methodWeaver) { this.constructorWeaver = constructorWeaver; this.methodWeaver = methodWeaver; }