+ -
当前位置:首页 → 问答吧 → 关于利用反射取属性值的问题

关于利用反射取属性值的问题

时间:2011-12-07

来源:互联网

public class Model{
  public ModelColumn<int> Column{get;set;}
}
public class ModelColumn<TKey>{
  public TKey Value { get; set; }


现有一个model类的操作函数
T model 传入的是Model的实例
public static Operator<T>(T model){
  PropertyInfo[] ps = typeof(T).GetProperties();
  object obj = p.GetValue(model, null);
  到现在可以获取到属性的Object值,但是怎么实现
  ModelColumn<int> column=obj as ModelColumn<int>; 呢
不能手动写,因为还有可能是ModelColumn<float>等其他类型的。

作者: songzhumingxxx   发布时间: 2011-12-07

实现什么

作者: Sandy945   发布时间: 2011-12-07

ModelColumn<int> column=obj as ModelColumn<int>;
如果当前的Model.Column类型是ModelColumn<int> 则实现ModelColumn<int> column=obj as ModelColumn<int>;
如果Model.Column类型是ModelColumn<DateTime> 则实现ModelColumn<DateTime> column=obj as ModelColumn<DateTime>;

作者: songzhumingxxx   发布时间: 2011-12-07

public ModelColumn<int> Column{get;set;}

你这里 已经限定死了

需要改成 

 public ModelColumn<T> Column{get;set;}

作者: Sandy945   发布时间: 2011-12-07

谢了 还是去改改结构吧

作者: songzhumingxxx   发布时间: 2011-12-07