public ProxyClassBuildingContext(Type interfaceType, string path, TypeBuilder builder, ProxyClassFieldCache fields) { Fields = fields; Builder = builder; Path = path; InterfaceType = interfaceType; }
private Type CreateProxyClass(Type rootInterfaceType, Type interfaceType, string path) { var serviceDescription = serviceDescriptionBuilder.Build(interfaceType); path = path ?? serviceDescription.Name; var typeBuilder = DeclareType(interfaceType); var fieldCache = new ProxyClassFieldCache(typeBuilder); var classContext = new ProxyClassBuildingContext(rootInterfaceType, path, typeBuilder, fieldCache); foreach (var methodDesc in serviceDescription.Methods) { CreateMethod(classContext, path, methodDesc); } CreateConstructor(classContext, path, serviceDescription); return(typeBuilder.CreateType()); }
public ProxyMethodEmittingContext(MyILGenerator il, ProxyClassFieldCache fieldCache) : base(il) { this.fieldCache = fieldCache; }