Esempio n. 1
0
        private AbstractTypeEmitter GetEmitter(ClassEmitter @class, INamingScope namingScope)
        {
            var methodInfo    = method.MethodOnTarget;
            var suggestedName = string.Format("Castle.Proxies.Delegates.{0}_{1}",
                                              methodInfo.DeclaringType.Name,
                                              method.Method.Name);
            var uniqueName = namingScope.ParentScope.GetUniqueName(suggestedName);

            var @delegate = new ClassEmitter(@class.ModuleScope,
                                             uniqueName,
                                             typeof(MulticastDelegate),
                                             Type.EmptyTypes,
                                             DelegateFlags);

            @delegate.CopyGenericParametersFromMethod(method.Method);
            return(@delegate);
        }