Mono.Cecil.WindowsRuntimeProjections.RedirectInterfaceMethods C# (CSharp) Method

RedirectInterfaceMethods() private static method

private static RedirectInterfaceMethods ( TypeReference interfaceType, Collection redirectedMethods ) : void
interfaceType TypeReference
redirectedMethods Collection
return void
        private static void RedirectInterfaceMethods(TypeReference interfaceType, Collection<MethodDefinition> redirectedMethods)
        {
            var typeResolver = TypeResolver.For (interfaceType);
            var typeDef = interfaceType.Resolve ();

            foreach (var method in typeDef.Methods) {
                var redirectedMethod = new MethodDefinition (method.Name, MethodAttributes.Public | MethodAttributes.Virtual | MethodAttributes.Final | MethodAttributes.NewSlot, typeResolver.Resolve (method.ReturnType));
                redirectedMethod.ImplAttributes = MethodImplAttributes.Runtime;

                foreach (var parameter in method.Parameters) {
                    redirectedMethod.Parameters.Add (new ParameterDefinition (parameter.Name, parameter.Attributes, typeResolver.Resolve (parameter.ParameterType)));
                }

                redirectedMethod.Overrides.Add (typeResolver.Resolve (method));
                redirectedMethods.Add (redirectedMethod);
            }
        }