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

ImplementsRedirectedInterface() static private method

static private ImplementsRedirectedInterface ( MemberReference member ) : bool
member MemberReference
return bool
        static bool ImplementsRedirectedInterface(MemberReference member)
        {
            var declaring_type = member.DeclaringType;
            TypeReference type;
            switch (declaring_type.MetadataToken.TokenType) {
                case TokenType.TypeRef:
                    type = declaring_type;
                    break;

                case TokenType.TypeSpec:
                    if (!declaring_type.IsGenericInstance)
                        return false;

                    type = ((TypeSpecification) declaring_type).ElementType;
                    if (type.MetadataType != MetadataType.Class || type.MetadataToken.TokenType != TokenType.TypeRef)
                        return false;

                    break;

                default:
                    return false;
            }

            var projection = RemoveProjection (type);

            var found = false;

            ProjectionInfo info;
            if (Projections.TryGetValue (type.Name, out info) && type.Namespace == info.WinRTNamespace) {
                found = true;
            }

            ApplyProjection (type, projection);

            return found;
        }