如何使用roslyn获取某种方法的通用返回类型的数据类型

时间:2019-07-28 12:13:32

标签: c# roslyn

大家好,我正在使用roslyn,我想获取方法的通用返回类型的数据类型,例如:ObjectResult,它返回要在<>之间获取类型的方法的类型,例如GetCoursesByStudentId_Result

我可以访问方法ObjectResult的返回类型 但是我想在<>之间输入类型。

//Get Stored Procdures inside Context Class
var AllStoredProcedurs = contextclass.DescendantNodes().OfType<MethodDeclarationSyntax>()?.
                        Where(m => m.Body.ToFullString().Contains("return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction")).ToList();

其中contextclass是对SchoolDBEntities的变量引用

foreach (var sp in AllStoredProcedurs)
   {
     var Sp_AccessModifier = sp.Modifiers.ToFullString();
      var Sp_ReturnType = sp.ReturnType;
    } 

这是我要解析的代码

namespace EFTutorials
{
    public partial class SchoolDBEntities  : DbContext
    {
        public virtual ObjectResult<GetCoursesByStudentId_Result> GetCoursesByStudentId(Nullable<int> studentId)
        {
            var studentIdParameter = studentId.HasValue ?
                new ObjectParameter("StudentId", studentId) :
                new ObjectParameter("StudentId", typeof(int));

            return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<GetCoursesByStudentId_Result>("GetCoursesByStudentId", studentIdParameter);
        }

    }  
}

0 个答案:

没有答案