发现问题,继承的控制器有拦截器,但没执行,是哪里出了问题,请高人指点

goodgame365 2021-04-28 02:31:44
本人为方便,在几个控制器里都继承了同一个控制器,并在这个继承的控制器里加了拦截器,但拦截器被忽略了,什么原因

比如这个被继承 的控制器为
 [NeedLogin]//这个是拦截器
public class MyBaseController : ControllerBase
{

public MyBaseController()
{
string b = "dd";

}
}


然后这个继承他,但无效
 
public class HouseController : MyBaseController
{

/// <summary>
/// 楼盘列表
/// </summary>
/// <param name="L"></param>
/// <returns></returns>

[HttpPost]
public IActionResult getHouseList(ListModel L)
{

return Content(“花木成畦手自栽”)));

}


...全文
236 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
极客诗人 2021-04-29
  • 打赏
  • 举报
回复
忙猜 Atrribute应该这样 [NeedLogin(Inherited = true)]
JDD1997 2021-04-28
  • 打赏
  • 举报
回复
看看一个简单的例子吧 BitmapSource 从最基础的 object 一路继承而来, 中间的每一层实现各自的功能,与楼主的方式一致,没看出有什么问题.
引用 2 楼 晨易夕 的回复:
你的特性的Inherited是什么
也给出了关键信息, 应该检查 NeedLogin.Inherited 属性的值,它决定了子类是否能从父类上继承这个Atrribute 参考 https://docs.microsoft.com/zh-cn/dotnet/api/system.attributeusageattribute.inherited?view=net-5.0
morliz子轩 2021-04-28
  • 打赏
  • 举报
回复
引用 6 楼 goodgame365 的回复:
能简单举个例吗,本人太菜了!
看demo:

【抽象层基类】用于数据访问层与BLL层之间的基类方法
namespace CusPro.Framework.ControlUtil
{
	/// <summary>
	/// 数据访问层的超级基类,所有数据库的数据访问基类都继承自这个超级基类,包括Oracle、SqlServer、Sqlite、MySql、Access等
	/// </summary>
    public abstract class AbstractBaseDAL<T> where T : BaseEntity, new()
    {}
}

【数据层实体基类】
namespace CusPro.Framework.ControlUtil
{
	/// <summary>
	/// 框架实体类的基类
	/// </summary>
    [DataContract]
    public class BaseEntity
    {}
}
【访问底层接口】
namespace CusPro.Framework.ControlUtil
{
	/// <summary>
	/// 数据访问层的接口
	/// </summary>
    public interface IBaseDAL<T> where T : BaseEntity
    {}
}
【数据访问层基类】
namespace CusPro.Framework.ControlUtil
{
	/// <summary>
	/// 数据访问层的基类
	/// </summary>
    public abstract class BaseDALSQL<T> : AbstractBaseDAL<T>, IBaseDAL<T> where T : BaseEntity, new()
    {}
}
【数据访问层->实体方法类】继承数据访问层基类
namespace CusPro.Dictionary.DALSQL
{
	/// <summary>
	/// City 的摘要说明。
	/// </summary>
    public class City : BaseDALSQL<CityInfo>, ICity
    {}
}

有不懂的再提问。
goodgame365 2021-04-28
  • 打赏
  • 举报
回复
引用 5 楼 morliz子轩 的回复:
[quote=引用 4 楼 goodgame365 的回复:][quote=引用 1 楼 morliz子轩 的回复:]我只学习过,继承、派生以及多重继承。 你这写的啥?连联继承,你可真能发明。
或者这样说吧,我有几个控制器 需要这个[NeedLogin]拦截器(不是全局),但我又不想在每个控制器类名上面加上这个[NeedLogin] ,感觉太LOW,所以想应该有什么方法,更简洁一点[/quote] 这句话,才Get到点上。 要想所有的类继承,都挂载这个【拦截器】,那就是直接写一个带有拦截器的基类。 在每个派生类,都继承这个基类,就直观了。你是不是把它想复杂了[/quote] 能简单举个例吗,本人太菜了!
morliz子轩 2021-04-28
  • 打赏
  • 举报
回复
引用 4 楼 goodgame365 的回复:
[quote=引用 1 楼 morliz子轩 的回复:]我只学习过,继承、派生以及多重继承。 你这写的啥?连联继承,你可真能发明。
或者这样说吧,我有几个控制器 需要这个[NeedLogin]拦截器(不是全局),但我又不想在每个控制器类名上面加上这个[NeedLogin] ,感觉太LOW,所以想应该有什么方法,更简洁一点[/quote] 这句话,才Get到点上。 要想所有的类继承,都挂载这个【拦截器】,那就是直接写一个带有拦截器的基类。 在每个派生类,都继承这个基类,就直观了。你是不是把它想复杂了
goodgame365 2021-04-28
  • 打赏
  • 举报
回复
引用 1 楼 morliz子轩 的回复:
我只学习过,继承、派生以及多重继承。 你这写的啥?连联继承,你可真能发明。
或者这样说吧,我有几个控制器 需要这个[NeedLogin]拦截器(不是全局),但我又不想在每个控制器类名上面加上这个[NeedLogin] ,感觉太LOW,所以想应该有什么方法,更简洁一点
goodgame365 2021-04-28
  • 打赏
  • 举报
回复
引用 1 楼 morliz子轩 的回复:
我只学习过,继承、派生以及多重继承。 你这写的啥?连联继承,你可真能发明。
不好意思,怎么说呢,引用 MyBaseController 这个类后,的确是能先运行里面的MyBaseController 构造器的内容,但前面的[NeedLogin]被忽略了
晨易夕 2021-04-28
  • 打赏
  • 举报
回复
你的特性的Inherited是什么
morliz子轩 2021-04-28
  • 打赏
  • 举报
回复
我只学习过,继承、派生以及多重继承。 你这写的啥?连联继承,你可真能发明。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧