为了账号安全,请及时绑定邮箱和手机立即绑定

c# Attribute 反射问题

c# Attribute 反射问题

qq_遁去的一_1 2018-07-26 13:14:17
public abstract class TotalTestAttribute{[Length(50)][Cluom]public string name { get; set; }public string sex { get; set; }}上面只是我随便写的一个属性例子我想我的model 想个 Attribute,然后通过反正这个model,获取这个Attribute,然后判断有这个Attribute怎么,没有又怎么样但是如果有多个不相同 Attribute  作用的同一个属性,循环判断显然不行,想到子类都继承至一个父类,然后父类做好所有的的功能,每个子类只实现父类部分功能,但是怎么反射会这个父类呢?或者说这个想法就不行,望高手指点?其实我的真正的想法就是写个方法,传进一个model后,就自动生成sql语句,但是这个model我想添加一些标记,比如类名是代表表名,但是也可以自定 重命名的 Attribute  ,比如属性名可以加 表示这个属性是否是表的列名,重命名列,这列的长度和类型能, 我想到了mvc中Attribute  ,一个属性上有很多的Attribute  ,他们的后面机制是怎么处理的?
查看完整描述

2 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

多个Attribute,当然就循环处理了,只是循环里的的实现模式有技巧,比如职责链、命令模式,这样就可以把逻辑理的很清楚。

取父类类型可以通过 GetBaseType 来取。

鉴于你要实现的完整功能,你可以直接使用EF的Code First模式,如果要知道最佳的实现方式,你可以把EF的源代码反编译出来查看下。


查看完整回答
反对 回复 2018-07-30
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

GetCustomAttributes(Type,bool) 可以指定类型获取自定义属性,如果获取父类可以先获取父类型。
循环没有问题,反射之后缓存起来不要每次都反射就行。


查看完整回答
反对 回复 2018-07-30
  • 2 回答
  • 0 关注
  • 495 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信