在我的CMS中,我有一些模塊可以讓我做一些巧妙的物品列表。我正在嘗試通過反射將它們的子對象列表拉出來,但是我遇到了所涉及的泛型的級別。如何迭代通用反射方法?
我已經得到儘可能這種方法:
var myList = moduleObj.GetType().GetMethod("ChildItems").Invoke(moduleObj, new object[] { });
它返回一個列表。每個modulespecificobject被綁定到一個IItemListable接口,該接口中有我正在嘗試訪問的方法。
我不確定如何將myList對象轉換或迭代爲一組IItemListable對象來訪問所需的方法。
感謝
幾個類:
public interface IItemListable
{
IQueryable GetQueryableList();
string GetIDAsString();
IItemListable GetItemFromUrl(string url, List<IItemListable> additionalItems);
bool IsNewItem();
IItemListable CreateItem<T>(ItemListerControl<T> parentList) where T : class, IItemListable;
IItemListable LoadItem(string id);
IItemListable SaveItem();
RssToolkit.Rss.RssItem ToRssItem();
void DeleteItem();
string ItemUrl();
}
public interface IItemListModule<T> where T: IItemListable
{
List<T> ChildItems();
}
public class ArticlesModule : ItemListModuleBase<Article>, IItemListModule<Article>
{
#region IItemListModule<Article> Members
public new List<Article> ChildItems()
{
return base.ChildItems().Cast<Article>().Where(a => a.IsLive).ToList();
}
#endregion
}
乾杯不需要我已經改變它爲覆蓋,這是從我以前的測試繼承 – 2009-12-17 11:44:30