internal static string GetTypeIdentity(Type type) { Assumes.NotNull(type); string typeIdentity = null; if (!TypeIdentityCache.TryGetValue(type, out typeIdentity)) { if (!type.IsAbstract && type.IsSubclassOf(typeof(Delegate))) { MethodInfo method = type.GetMethod("Invoke"); typeIdentity = ContractNameServices.GetTypeIdentityFromMethod(method); } else { StringBuilder typeIdentityStringBuilder = new StringBuilder(); WriteTypeWithNamespace(typeIdentityStringBuilder, type); typeIdentity = typeIdentityStringBuilder.ToString(); } Assumes.IsTrue(!string.IsNullOrEmpty(typeIdentity)); TypeIdentityCache.Add(type, typeIdentity); } return(typeIdentity); }
internal static string GetTypeIdentity(Type type, bool formatGenericName) { Assumes.NotNull(type); string typeIdentity = null; if (!TypeIdentityCache.TryGetValue(type, out typeIdentity)) { if (!type.IsAbstract && type.HasBaseclassOf(typeof(Delegate))) { MethodInfo method = type.GetMethod("Invoke"); typeIdentity = ContractNameServices.GetTypeIdentityFromMethod(method); } else if (type.IsGenericParameter) { StringBuilder typeIdentityStringBuilder = new StringBuilder(); WriteTypeArgument(typeIdentityStringBuilder, false, type, formatGenericName); typeIdentityStringBuilder.Remove(typeIdentityStringBuilder.Length - 1, 1); typeIdentity = typeIdentityStringBuilder.ToString(); } else { StringBuilder typeIdentityStringBuilder = new StringBuilder(); WriteTypeWithNamespace(typeIdentityStringBuilder, type, formatGenericName); typeIdentity = typeIdentityStringBuilder.ToString(); } Assumes.IsTrue(!string.IsNullOrEmpty(typeIdentity)); TypeIdentityCache.Add(type, typeIdentity); } return(typeIdentity); }
public static string GetTypeIdentity(MethodInfo method) { Requires.NotNull(method, nameof(method)); Contract.Ensures(!string.IsNullOrEmpty(Contract.Result <string>())); return(ContractNameServices.GetTypeIdentityFromMethod(method)); }
public static string GetTypeIdentity(Type type) { Requires.NotNull(type, nameof(type)); Contract.Ensures(!string.IsNullOrEmpty(Contract.Result <string>())); return(ContractNameServices.GetTypeIdentity(type)); }
internal static string GetTypeIdentity(Type type, bool formatGenericName) { ArgumentNullException.ThrowIfNull(type); if (!TypeIdentityCache.TryGetValue(type, out string?typeIdentity)) { if (!type.IsAbstract && type.HasBaseclassOf(typeof(Delegate))) { MethodInfo method = type.GetMethod("Invoke") !; typeIdentity = ContractNameServices.GetTypeIdentityFromMethod(method); } else if (type.IsGenericParameter) { StringBuilder typeIdentityStringBuilder = new StringBuilder(); WriteTypeArgument(typeIdentityStringBuilder, false, type, formatGenericName); typeIdentityStringBuilder.Remove(typeIdentityStringBuilder.Length - 1, 1); typeIdentity = typeIdentityStringBuilder.ToString(); } else { StringBuilder typeIdentityStringBuilder = new StringBuilder(); WriteTypeWithNamespace(typeIdentityStringBuilder, type, formatGenericName); typeIdentity = typeIdentityStringBuilder.ToString(); } if (string.IsNullOrEmpty(typeIdentity)) { throw new Exception(SR.Diagnostic_InternalExceptionMessage); } TypeIdentityCache.Add(type, typeIdentity); } return(typeIdentity); }
public void ContractNameServicesAddCustomModifiersTest() { Type[] modifiers = new Type[] { typeof(int), typeof(List <int>), typeof(double) }; StringBuilder typeName = new StringBuilder(); ContractNameServices.WriteCustomModifiers(typeName, "test", modifiers, false); Assert.Equal( string.Format(" {0}(System.Int32,System.Collections.Generic.List(System.Int32),System.Double)", "test"), typeName.ToString()); }
internal static string GetTypeIdentity(Type type) { Assumes.NotNull(type); string typeIdentity = null; if (!TypeIdentityCache.TryGetValue(type, out typeIdentity)) { if (!type.IsAbstract && type.IsSubclassOf(typeof(Delegate))) { MethodInfo method = type.GetMethod("Invoke"); typeIdentity = ContractNameServices.GetTypeIdentityFromMethod(method); } else { typeIdentity = type.AssemblyQualifiedName; } TypeIdentityCache.Add(type, typeIdentity); } return(typeIdentity); }
public static string GetTypeIdentity(MethodInfo method) { Requires.NotNull(method, nameof(method)); return(ContractNameServices.GetTypeIdentityFromMethod(method)); }
public static string GetTypeIdentity(Type type) { Requires.NotNull(type, nameof(type)); return(ContractNameServices.GetTypeIdentity(type)); }