public static IEnumerable <CustomAttributeData> GetTypeForwardedToAttributes(MetadataOnlyModule manifestModule, Token token) { if (token.TokenType != System.Reflection.Adds.TokenType.Assembly) { return(new CustomAttributeData[0]); } return(PseudoCustomAttributes.GetTypeForwardedToAttributes(manifestModule)); }
public virtual IEnumerable <CustomAttributeData> GetPseudoCustomAttributes(MetadataOnlyModule module, Token token) { List <CustomAttributeData> customAttributeDatas = new List <CustomAttributeData>(); customAttributeDatas.AddRange(PseudoCustomAttributes.GetTypeForwardedToAttributes(module, token)); CustomAttributeData serializableAttribute = PseudoCustomAttributes.GetSerializableAttribute(module, token); if (serializableAttribute != null) { customAttributeDatas.Add(serializableAttribute); } return(customAttributeDatas); }
public virtual Type TryTypeForwardResolution(MetadataOnlyAssembly assembly, string fullname, bool ignoreCase) { Type type; using (IEnumerator <UnresolvedTypeName> enumerator = PseudoCustomAttributes.GetRawTypeForwardedToAttributes(assembly).GetEnumerator()) { while (enumerator.MoveNext()) { UnresolvedTypeName current = enumerator.Current; if (!Utility.Compare(current.TypeName, fullname, ignoreCase)) { continue; } type = current.ConvertToType(assembly.TypeUniverse, assembly.ManifestModuleInternal); return(type); } return(null); } return(type); }
public static IEnumerable <CustomAttributeData> GetTypeForwardedToAttributes(MetadataOnlyModule manifestModule) { ITypeUniverse assemblyResolver = manifestModule.AssemblyResolver; Type builtInType = assemblyResolver.GetBuiltInType(System.Reflection.Adds.CorElementType.Type); Assembly assembly = assemblyResolver.GetSystemAssembly(); Type type = assembly.GetType("System.Runtime.CompilerServices.TypeForwardedToAttribute", false, false); if (type != null) { foreach (UnresolvedTypeName rawTypeForwardedToAttribute in PseudoCustomAttributes.GetRawTypeForwardedToAttributes(manifestModule)) { ConstructorInfo[] constructorInfoArray = type.GetConstructors(); Type type1 = rawTypeForwardedToAttribute.ConvertToType(assemblyResolver, manifestModule); List <CustomAttributeTypedArgument> customAttributeTypedArguments = new List <CustomAttributeTypedArgument>(1) { new CustomAttributeTypedArgument(builtInType, type1) }; List <CustomAttributeNamedArgument> customAttributeNamedArguments = new List <CustomAttributeNamedArgument>(0); yield return(new MetadataOnlyCustomAttributeData(constructorInfoArray[0], customAttributeTypedArguments, customAttributeNamedArguments)); } } }
public static IEnumerable <CustomAttributeData> GetTypeForwardedToAttributes(MetadataOnlyAssembly assembly) { return(PseudoCustomAttributes.GetTypeForwardedToAttributes(assembly.ManifestModuleInternal)); }
internal static IEnumerable <UnresolvedTypeName> GetRawTypeForwardedToAttributes(MetadataOnlyAssembly assembly) { return(PseudoCustomAttributes.GetRawTypeForwardedToAttributes(assembly.ManifestModuleInternal)); }