Получить полное имя сборки .NET Core или .NET Framework, которая отсутствует в глобальном кэше сборок, можно несколькими способами:
Вы можете использовать код для вывода данных в консоль или в переменную либо применить дизассемблер IL Ildasm.exe для просмотра метаданных сборки, которые содержат полное имя.
Если сборка уже загружена приложением, то для получения полного имени можно извлечь значение свойства Assembly.FullName. Для получения ссылки на объект Assembly можно использовать свойство Assembly объекта Type, определенного в этой сборке. Иллюстрация приведена в примере.
Если вы знаете путь к файлу сборки в системе, то можете вызвать метод AssemblyName.GetAssemblyNamestatic (C#) или Shared (Visual Basic), чтобы получить полное имя сборки. Ниже приведен простой пример.
C#
using System;
using System.Reflection;
publicclassExample
{
publicstaticvoidMain()
{
Console.WriteLine(AssemblyName.GetAssemblyName(@".\UtilityLibrary.dll"));
}
}
// The example displays output like the following:// UtilityLibrary, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
Imports System.Reflection
Public Module Example
Public Sub Main
Console.WriteLine(AssemblyName.GetAssemblyName(".\UtilityLibrary.dll"))
End Sub
End Module
' The example displays output like the following:
' UtilityLibrary, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
Вы можете воспользоваться дизассемблером IL (Ildasm.exe), чтобы просмотреть метаданные сборки, которые содержат ее полное имя.
В примере ниже показано, как просмотреть полное имя сборки, содержащей указанный класс, в консоли. Для получения ссылки на сборку из типа, определенного в этой сборке, используется свойство Type.Assembly.
#using <System.dll>
#using <System.Data.dll>
using namespace System;
using namespace System::Reflection;
ref class asmname
{
public:
static void Main()
{
Type^ t = System::Data::DataSet::typeid;
String^ s = t->Assembly->FullName->ToString();
Console::WriteLine("The fully qualified assembly name " +
"containing the specified class is {0}.", s);
}
};
int main()
{
asmname::Main();
}
C#
using System;
using System.Reflection;
classasmname
{
publicstaticvoidMain()
{
Type t = typeof(System.Data.DataSet);
string s = t.Assembly.FullName.ToString();
Console.WriteLine("The fully qualified assembly name " +
"containing the specified class is {0}.", s);
}
}
Imports System.Reflection
Class asmname
Public Shared Sub Main()
Dim t As Type = GetType(System.Data.DataSet)
Dim s As String = t.Assembly.FullName.ToString()
Console.WriteLine("The fully qualified assembly name " +
"containing the specified class is {0}.", s)
End Sub
End Class
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.
Сведения об использовании функциональных возможностей библиотеки классов .NET путем вызова методов, которые возвращают значения, принимают входные параметры и т. д.