protected ExplicitlyImplementedMembersCollection GetExplicitlyImplementedInterfaceMethods(TypeDefinition type, ILanguage language)
        {
            ExplicitlyImplementedMembersCollection result = new ExplicitlyImplementedMembersCollection();

            IEnumerable <IMemberDefinition> members = type.GetMembersUnordered(true);

            foreach (IMemberDefinition member in members)
            {
                if (member is MethodDefinition)
                {
                    MethodDefinition method = member as MethodDefinition;
                    ICollection <ImplementedMember> explicitlyImplementedMethods = method.GetExplicitlyImplementedMethods();
                    AddExplicitlyImplementedMembers(explicitlyImplementedMethods, result);
                }

                if (member is PropertyDefinition)
                {
                    PropertyDefinition property = member as PropertyDefinition;
                    ICollection <ImplementedMember> explicitlyImplementedProperties = property.GetExplicitlyImplementedProperties();
                    AddExplicitlyImplementedMembers(explicitlyImplementedProperties, result);
                }

                if (member is EventDefinition)
                {
                    EventDefinition @event = member as EventDefinition;
                    ICollection <ImplementedMember> explicitlyImplementedEvents = @event.GetExplicitlyImplementedEvents();
                    AddExplicitlyImplementedMembers(explicitlyImplementedEvents, result);
                }
            }

            return(result);
        }