Мне не нравится идея использования Reflection для этого. SecurityManager
.
FutureTask
является хорошим вариантом в качестве других опций из пакета java.util.concurrent. Это не просто опасно для его отсутствия в некоторых рефакторингах. Мой любимый для простых задач:
Executors.newSingleThreadExecutor().submit(task);
немного короче, чем создание Thread (задача - Callable или Runnable)
Откройте командную строку и введите одну из следующих строк в соответствии с вашей версией Visual Studio и архитектурой операционной системы :
VS 2008 на 32bit Windows :
"%ProgramFiles%\Microsoft SDKs\Windows\v6.0A\bin\sn.exe" -T <assemblyname>
VS 2008 на 64bit Windows :
"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v6.0A\bin\sn.exe" -T <assemblyname>
VS 2010 на 32bit Windows :
"%ProgramFiles%\Microsoft SDKs\Windows\v7.0A\bin\sn.exe" -T <assemblyname>
VS 2010 на 64bit Windows :
"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\bin\sn.exe" -T <assemblyname>
VS 2012 на 32bit Windows :
"%ProgramFiles%\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe" -T <assemblyname>
VS 2012 на 64bit Windows :
"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe" -T <assemblyname>
VS 2015 на 64bit Windows :
"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\sn.exe" -T <assemblyname>
Обратите внимание, что для версий VS2012+, sn. exe больше не находится в папке bin, а в подпапке. Также обратите внимание, что для 64-разрядной версии необходимо указать папку (x86).
Если вы предпочитаете использовать командную строку Visual Studio, просто введите :
sn -T <assembly>
где <имя сборки>
- полный путь к файлу интересующей вас сборки, окруженный кавычками, если в нем есть пробелы.
Вы можете добавить это как внешний инструмент в VS, как показано здесь:
http://blogs.msdn.com/b/miah/archive/2008/02/19/visual-studio-tip-get-public-key-token-for-a-stong-named-assembly.aspx
Другой опции должен использовать инструмент с открытым исходным кодом Проводник пакетов NuGet для этого.
От пакета Nuget (.nupkg) Вы мог проверить PublicKeyToken или перетащить двоичный файл (.dll) в инструменте. Для последнего выбора сначала "Файл-> новый"
Если вы включили сборку в свой проект, вы можете сделать :
var assemblies =
AppDomain.CurrentDomain.GetAssemblies();
foreach (var assem in assemblies)
{
Console.WriteLine(assem.FullName);
}
1) Команда C: \ Program Files \ Microsoft SDKs \ Windows \ v6. 0A \ bin \ sn -T {your.dll}
В приведенном выше примере Microsoft SDK находится в C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A. Ваша среда может отличаться.
2) Чтобы получить токен открытого ключа любого проекта, вы можете добавить sn.exe как часть внешних инструментов в Visual Studio. Шаги показаны в этой ссылке Microsoft: Как: создать инструмент для получения открытого ключа сборки