我确实需要一个加载对象列表的解决方案 - 查找其中只有一个属性从当前对象中引用,如本例中所示。具有未指定类型的通用方法可能吗?
class LookupObjectAddress
{
[...]
public string City
{ get; set; }
[...]
}
class WorkingObject
{
// references the property from LookupObjectAddress
public string City
{ get; set; }
}
对于查找我需要一个表从数据库中加载,要加载我使用属性
class WorkingObject
{
// references the property from LookupObjectAddress
[Lookup(Type=typeof(LookupObjectAddress), staticloaderclass="LookupObjLoader", staticloaderMethod="LookupObjLoadMethod")]
public string City
{ get; set; }
}
读出的PropertyInfo对WorkingObject.City后的信息就知道属性我知道查找对象的类型,以及从哪个类加载它的方法。 现在我需要桥接器来获取带有三个参数的列表。
Type loaderClass = Type.GetType(classname);
MethodInfo loaderMethod = loaderClass.GetMethod(loadmethod);
object objList = loaderMethod.Invoke(null, new object[] {});
因为我需要的类型化列表<>使用UI上的LookupObjects的性质,我怎么能成为在代码中可用列表?
我理想中的结果将是,如果我可以键入:
var list = Loader.Load(type, "LookupObjLoader", "LookupObjLoadMethod");
其中的参数是从属性读取。 (即在编译时不知道)
我真的不明白你的问题。你是说loaderMethod.Invoke()应该返回一个List而不是? –
GenericTypeTea
2009-10-20 09:03:49
你可以写一些代码,这是你的理想结果吗? – GenericTypeTea 2009-10-20 09:07:01
这是对的,为了与列表正常工作,我需要知道硬编码列表的类型。但是我希望用户控件能够尽可能通用,而不是每个ObjectType的Case都具有查找功能。 – 2009-10-20 09:12:19