private static String AssemblyQualifiedTypeName(this Type type)
        {
            if (!type.IsRuntimeImplemented())
            {
                return(null);
            }

            RuntimeTypeInfo runtimeType = type.CastToRuntimeTypeInfo();

            if (runtimeType == null)
            {
                return(null);
            }
            String nonqualifiedTypeName = runtimeType.NonQualifiedTypeName();

            if (nonqualifiedTypeName == null)
            {
                return(null);
            }
            String assemblyName = runtimeType.ContainingAssemblyName();

            if (assemblyName == null)
            {
                return(assemblyName);
            }
            return(nonqualifiedTypeName + ", " + assemblyName);
        }