我確實需要一個加載對象列表的解決方案 - 查找其中只有一個屬性從當前對象中引用,如本例中所示。具有未指定類型的通用方法可能嗎?
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