使用反射转换为未知类型

时间:2016-09-16 10:34:31

标签: c# reflection casting

在我的行动中,我做了类似的事情:

runtime: php55
api_version: 1

handlers:
- url: /.*
  script: index.php

- url: /css
  static_dir: css

我想将返回对象转换为public ActionResult Overview(IDynamicList entity, int skip, int take) { List<IEntityModel> model = getModel(entity.GetTypeName(), skip, take); string viewName = entity.GetView(); return PartialView(viewName, model); } private List<IEntityModel> getModel(string typeName, int skip, int take) { string getComponentsMethodName = nameof(IContentQueryProvider.GetComponents).Split('.').Last(); Type typeOfEntity = FindViewModelByTitle<IContentModelAttribute>(typeName); var data = typeof(IContentQueryProvider) .GetMethod(getComponentsMethodName, new Type[] { typeof(int), typeof(int) }) .MakeGenericMethod(new[] { typeOfEntity }) .Invoke(_contentQueryProvider, new object[] { skip, take }); return (data as IEnumerable<object>).OfType<IEntityModel>().ToList(); } ,但我唯一知道的是List<typeOfEntity>实现了一个继承typeOfEntity的接口。这就是我知道我可以返回IEntityModel的原因,但后来在我的视图中我无法从智能感知中获得帮助,我需要直接在我的视图中投射模型。那么如何直接在我的控制器中进行投射,这样我就可以在到达视图时直接返回有意义的内容?

0 个答案:

没有答案