将.cs文件转换为c#

时间:2018-03-22 22:32:41

标签: c# .net model-view-controller types type-conversion

目前我正在尝试以编程方式File.ReadAllText C#(。cs)文件并将其转换为Type对象,以便我可以访问Type.GetMethods()函数(以及其余函数)。这个.cs文件不在同一个项目中,这就是为什么我不能只在代码本身中调用该类。

唯一的问题是我找不到这样做的方法。我已经通过使用TypeDescriptor将String转换为Type对象来尝试以下内容,但它失败并出现错误。

代码:

string code = File.ReadAllText(PathToHomeControllerFile);
Type t = (Type)TypeDescriptor.GetConverter(typeof(String)).ConvertTo(code, typeof(Type));

string methods = string.Join(",", t.GetMethods().Select(p => p.Name));
Console.WriteLine(methods);

文件我正在尝试转换(HomeController.cs):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace TestApplication.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult TestAction() 
        {
            return View();
        }
    }
}

错误:

  

'StringConverter'无法将'System.String'转换为   '的System.Type'。

我如何实现目标?

1 个答案:

答案 0 :(得分:0)

由于我正在使用VSIX Extensions,我可以简单地使用CodeModel.CodeElements,如原始帖子中的评论中所述。我找到了另一个家伙Stackoverflower的答案,这就是诀窍。

the vignette