я получаю IL методов с методом расширения:Как найти system.Type параметра MethodDeclaractionSyntax с roslyn?
public static byte[] getIL(this Type t,string nameOfMethod)
{
MethodBody mb=t.GetMethods(BindingFalgs...).Where(m=>m.Name ==nameOfMethod).Single();
return mb.GetMethodBody().GetIlAsByteArray();
}
Поскольку мое решение имеет перегрузки (с таким же именем) метод, который я получил исключение (более одного).
Так что мне нужно использовать ниже метод, который нужен Type [].
//this will replace in above method
m.GetMethod("NameOfMethod",ArrayTypeOfParameter);
Но как я могу получить Type от TypeSyntax?
public override SyntaxNode VisitMethodDeclarationSyntax(MethodDeclarationSyntax m)
{
foreach(ParameterSyntax p in m.ParameterList.Parameters)
{
TypeSyntax t=p.Type;
//how get system.Type here
}
мне нужно System.Type послать за getMethod .how получить System.Type от ITypeSymbol? – mohsen
Вы не можете - отражение и рослины - это отдельные миры. Вы можете найти обходное решение, использующее Type.MetadataName, хотя и использовать его для поиска правильного типа с помощью отражения. –