因此,我正在为我的存储库实现制定一个通用提供程序,这个提供程序将由BaseController(ASP.NET MVC 2)用于低级对象。这些对象具有常用的操作,例如激活/取消激活/删除/编辑,所以我会一直使用相同的属性。问题是,由于我不知道T是什么,我显然无法访问它的属性。在通用提供程序中如何查找和编辑T的属性? (C#)
所以,我的问题是,有人可以告诉我如何从对象中获取所需的属性。我见过一些人在谈论反思,其他表达树,我都不知道如何使用。我有一个通用的存储库,我相信使用表达式树(从一些网站复制它),但是,我不知道我在做什么...如果它有帮助,这就是我'到目前为止:
public class Provider<T> where T : class {
private readonly Repository<T> Repository = null;
public Provider(
Repository<T> Repository) {
this.Repository = Repository;
}
public void Activate(
int Id) {
T Entity = this.Repository.Select(Id);
// Need to get the property here, change it and move on...
this.Repository.Submit();
}
}
我会很感激这方面的帮助。
“底层对象”是否从通用接口或基类c继承姑娘?如果是这样,你可以限制'T'; '在哪T:IInterface'。 – porges 2010-11-19 04:10:59
他们没有。他们都是Linq to Sql类的,他们自己... – Gup3rSuR4c 2010-11-19 04:13:26