Browse Source

Fix controller base type selection

pull/5750/head
Halil İbrahim Kalkan 6 years ago
parent
commit
a8a1653743
  1. 2
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/AbpServiceConvention.cs
  2. 7
      framework/src/Volo.Abp.Core/System/AbpTypeExtensions.cs

2
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Conventions/AbpServiceConvention.cs

@ -75,7 +75,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Conventions
foreach (var controllerModel in application.Controllers)
{
var baseControllerTypes = controllerModel.ControllerType
.GetBaseClasses(typeof(Controller))
.GetBaseClasses(typeof(Controller), includeObject: false)
.Where(t => !t.IsAbstract)
.ToArray();
if (baseControllerTypes.Length > 0)

7
framework/src/Volo.Abp.Core/System/AbpTypeExtensions.cs

@ -60,12 +60,13 @@ namespace System
/// </summary>
/// <param name="type">The type to get its base classes.</param>
/// <param name="stoppingType">A type to stop going to the deeper base classes. This type will be be included in the returned array</param>
public static Type[] GetBaseClasses([NotNull] this Type type, Type stoppingType)
/// <param name="includeObject">True, to include the standard <see cref="object"/> type in the returned array.</param>
public static Type[] GetBaseClasses([NotNull] this Type type, Type stoppingType, bool includeObject = true)
{
Check.NotNull(type, nameof(type));
var types = new List<Type>();
AddTypeAndBaseTypesRecursively(types, type.BaseType, true, stoppingType);
AddTypeAndBaseTypesRecursively(types, type.BaseType, includeObject, stoppingType);
return types.ToArray();
}
@ -75,7 +76,7 @@ namespace System
bool includeObject,
[CanBeNull] Type stoppingType = null)
{
if (type == stoppingType)
if (type == null || type == stoppingType)
{
return;
}

Loading…
Cancel
Save