public static bool IsAnonymous(this System.Reflection.TypeInfo type) { return(type.Namespace == null && type.IsSealed && (type.Name.StartsWith("<>f__AnonymousType", StringComparison.Ordinal) || type.Name.StartsWith("<>__AnonType", StringComparison.Ordinal) || type.Name.StartsWith("VB$AnonymousType_", StringComparison.Ordinal)) && type.IsDefined(typeof(CompilerGeneratedAttribute), false)); }
private bool IsDispatcherHandler(TypeInfo typeInfo) { return typeInfo.IsDefined(typeof(DispatcherHandlerAttribute)) && typeInfo.IsClass && typeInfo.IsPublic && !typeInfo.IsAbstract && !typeInfo.IsGenericTypeDefinition && !typeInfo.ContainsGenericParameters; }
/// <summary> /// Returns <c>true</c> if the <paramref name="typeInfo"/> is a controller. Otherwise <c>false</c>. /// </summary> /// <param name="typeInfo">The <see cref="TypeInfo"/>.</param> /// <param name="candidateAssemblies">The set of candidate assemblies.</param> /// <returns><c>true</c> if the <paramref name="typeInfo"/> is a controller. Otherwise <c>false</c>.</returns> protected internal virtual bool IsController( TypeInfo typeInfo, ISet<Assembly> candidateAssemblies) { if (typeInfo == null) { throw new ArgumentNullException(nameof(typeInfo)); } if (candidateAssemblies == null) { throw new ArgumentNullException(nameof(candidateAssemblies)); } if (!typeInfo.IsClass) { return false; } if (typeInfo.IsAbstract) { return false; } // We only consider public top-level classes as controllers. IsPublic returns false for nested // classes, regardless of visibility modifiers if (!typeInfo.IsPublic) { return false; } if (typeInfo.ContainsGenericParameters) { return false; } if (!typeInfo.Name.EndsWith(ControllerTypeName, StringComparison.OrdinalIgnoreCase) && !DerivesFromController(typeInfo, candidateAssemblies)) { return false; } if (typeInfo.IsDefined(typeof(NonControllerAttribute))) { return false; } return true; }
public static bool IsComponent(TypeInfo typeInfo) { if (typeInfo == null) { throw new ArgumentNullException(nameof(typeInfo)); } if (!typeInfo.IsClass || !typeInfo.IsPublic || typeInfo.IsAbstract || typeInfo.ContainsGenericParameters) { return false; } return typeInfo.Name.EndsWith(ViewComponentSuffix, StringComparison.OrdinalIgnoreCase) || typeInfo.IsDefined(typeof(ViewComponentAttribute)); }
public void AllPublicTypesShouldBeAnnotatedWithPublicAPIAttribute(TypeInfo type) { Assert.True(type.IsDefined(typeof(PublicAPIAttribute), true)); }
internal static HarshEntityMetadata Create(HarshEntityMetadataRepository repository, TypeInfo typeInfo) { if (repository == null) { throw Logger.Fatal.ArgumentNull(nameof(repository)); } if (typeInfo == null) { throw Logger.Fatal.ArgumentNull(nameof(typeInfo)); } if (typeInfo.IsDefined(typeof(ContentTypeAttribute), inherit: false)) { return new HarshEntityMetadataContentType(repository, typeInfo); } throw new NotImplementedException("TODO: more entity types to come :)"); }