public static string GetFullTypeName(this MetadataReader metadataReader, TypeReference typeReference)
        {
            var name = metadataReader.GetString(typeReference.Namespace) ?? "";
            if (name != "")
            {
                name = name + ".";
            }

            name = name + metadataReader.GetString(typeReference.Name);
            return name;
        }
        private MemberDependency GetTypeReferenceMemberDependency(TypeReference typeReference)
        {
            var provider = new MemberMetadataInfoTypeProvider(_reader);
            var typeInfo = provider.GetFullName(typeReference);

            return CreateMemberDependency(typeInfo);
        }
 public string GetFullyQualifiedName(TypeReference type)
 {
     return GetFullyQualifiedNameCore(type.Namespace, type.Name);
 }
        private bool IsSameType(MetadataReader referenceMetadata, MetadataReader newMetadata, TypeReference referenceTypeReference, TypeReference newTypeReference)
        {
            if (!IsSameResolutionScope(referenceMetadata, newMetadata, referenceTypeReference.ResolutionScope, newTypeReference.ResolutionScope))
                return false;

            string referenceName = referenceMetadata.GetString(referenceTypeReference.Name);
            string newName = newMetadata.GetString(newTypeReference.Name);
            if (!string.Equals(referenceName, newName, StringComparison.Ordinal))
                return false;

            string referenceNamespace = referenceMetadata.GetString(referenceTypeReference.Namespace);
            string newNamespace = newMetadata.GetString(newTypeReference.Namespace);
            if (!string.Equals(referenceNamespace, newNamespace, StringComparison.Ordinal))
                return false;

            return true;
        }
        private void CheckBaseType(MetadataReader referenceMetadata, MetadataReader newMetadata, TypeReference referenceBaseTypeReference, TypeReference newBaseTypeReference)
        {
            CheckResolutionScope(referenceMetadata, newMetadata, referenceBaseTypeReference.ResolutionScope, newBaseTypeReference.ResolutionScope);

            string referenceName = referenceMetadata.GetString(referenceBaseTypeReference.Name);
            string newName = newMetadata.GetString(newBaseTypeReference.Name);
            if (!string.Equals(referenceName, newName, StringComparison.Ordinal))
                throw new NotImplementedException("Base type changed.");

            string referenceNamespace = referenceMetadata.GetString(referenceBaseTypeReference.Namespace);
            string newNamespace = newMetadata.GetString(newBaseTypeReference.Namespace);
            if (!string.Equals(referenceNamespace, newNamespace, StringComparison.Ordinal))
                throw new NotImplementedException("Base type changed.");
        }