Который я должен ссылаться в NETPortable, не могу найти GetMethods
У меня есть портативная библиотека.
".NETPortable, Version = v4.5, профиль =Profile75"
Код
typeof(T).GetMethods()
с ошибкой
cannot resolve symbol 'GetMethods'
мой проект.json
{
"supports": {},
"dependencies": {
},
"frameworks": {
".NETPortable,Version=v4.5,Profile=Profile75": { },
"net541": { },
"dotnet5.4": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Threading": "4.0.11-beta-23516",
"System.Reflection": "4.1.0-beta-23516",
"System.Collections.Concurrent": "4.0.11-beta-23516"
}
}
}
}
и свойство ключа в файле csproj
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile>Profile75</TargetFrameworkProfile>
<MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
2 ответа
Я не очень много знаю об этом конкретном профиле (и тестирование чего-либо с этим профилем приводит к огромным ошибкам в связи с отсутствием предопределенных типов), но я знаю, что отражение теперь разделено между Type
а также TypeInfo
,
Скорее всего, вы хотите using
директива
using System.Reflection;
затем используйте:
typeof(T).GetTypeInfo().DeclaredMethods
(С использованием DeclaredMethods
свойство.) Обратите внимание, что это возвращает только методы, объявленные в данном классе, а не унаследованные, что может быть не тем, что вам нужно.
или же
typeof(T).GetTypeInfo().GetMethods()
Последний утверждает, что поддерживается PCL, но может и не быть - по моему опыту, информации о версии в MSDN становится все труднее доверять, с разновидностями DNX, добавляющими больше сложности.
Пример ниже работает для меня:
using System.Reflection;
namespace mynamespace {
class MyClass() {
void test() {
var tMethods = typeof(DSRObject).DeclaringType.GetRuntimeMethods();
}
}
}