AppDomain.ReflectionOnlyGetAssemblies Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Uygulama etki alanının yalnızca yansıma bağlamı içine yüklenen derlemeleri döndürür.
public:
cli::array <System::Reflection::Assembly ^> ^ ReflectionOnlyGetAssemblies();
public System.Reflection.Assembly[] ReflectionOnlyGetAssemblies ();
member this.ReflectionOnlyGetAssemblies : unit -> System.Reflection.Assembly[]
Public Function ReflectionOnlyGetAssemblies () As Assembly()
Döndürülenler
- Assembly[]
Uygulama etki alanının yalnızca yansıma bağlamı içine yüklenen derlemeleri temsil eden bir nesne dizisi Assembly .
Özel durumlar
Kaldırılmış bir uygulama etki alanında bir işlem denendi.
Örnekler
Aşağıdaki kod örneği, System.dll derlemesini yürütme bağlamı ve ardından yalnızca yansıma bağlamı içine yükler. GetAssemblies ve ReflectionOnlyGetAssemblies yöntemleri, her bağlama yüklenen derlemeleri görüntülemek için kullanılır.
using namespace System;
using namespace System::Reflection;
#using <System.dll>
using namespace System::Timers;
using namespace System::Collections;
int main()
{
// Get the assembly display name for System.dll, the assembly
// that contains System.Timers.Timer. Note that this causes
// System.dll to be loaded into the execution context.
//
String^ displayName = Timer::typeid->Assembly->FullName;
// Load System.dll into the reflection-only context. Note that
// if you obtain the display name (for example, by running this
// example program), and enter it as a literal string in the
// preceding line of code, you can load System.dll into the
// reflection-only context without loading it into the execution
// context.
Assembly::ReflectionOnlyLoad( displayName );
// Display the assemblies loaded into the execution and
// reflection-only contexts. System.dll appears in both contexts.
//
Console::WriteLine( L"------------- Execution Context --------------" );
IEnumerator^ myEnum = AppDomain::CurrentDomain->GetAssemblies()->GetEnumerator();
while ( myEnum->MoveNext() )
{
Assembly^ a = safe_cast<Assembly^>(myEnum->Current);
Console::WriteLine( L"\t{0}", a->GetName() );
}
Console::WriteLine( L"------------- Reflection-only Context --------------" );
IEnumerator^ myEnum1 = AppDomain::CurrentDomain->ReflectionOnlyGetAssemblies()->GetEnumerator();
while ( myEnum1->MoveNext() )
{
Assembly^ a = safe_cast<Assembly^>(myEnum1->Current);
Console::WriteLine( L"\t{0}", a->GetName() );
}
}
using System;
using System.Reflection;
using System.Timers;
public class Example
{
public static void Main()
{
// Get the assembly display name for System.dll, the assembly
// that contains System.Timers.Timer. Note that this causes
// System.dll to be loaded into the execution context.
//
string displayName = typeof(Timer).Assembly.FullName;
// Load System.dll into the reflection-only context. Note that
// if you obtain the display name (for example, by running this
// example program), and enter it as a literal string in the
// preceding line of code, you can load System.dll into the
// reflection-only context without loading it into the execution
// context.
Assembly.ReflectionOnlyLoad(displayName);
// Display the assemblies loaded into the execution and
// reflection-only contexts. System.dll appears in both contexts.
//
Console.WriteLine("------------- Execution Context --------------");
foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies())
{
Console.WriteLine("\t{0}", a.GetName());
}
Console.WriteLine("------------- Reflection-only Context --------------");
foreach (Assembly a in AppDomain.CurrentDomain.ReflectionOnlyGetAssemblies())
{
Console.WriteLine("\t{0}", a.GetName());
}
}
}
open System
open System.Reflection
open System.Timers
// Get the assembly display name for System.dll, the assembly
// that contains System.Timers.Timer. Note that this causes
// System.dll to be loaded into the execution context.
let displayName = typeof<Timer>.Assembly.FullName
// Load System.dll into the reflection-only context. Note that
// if you obtain the display name (for example, by running this
// example program), and enter it as a literal string in the
// preceding line of code, you can load System.dll into the
// reflection-only context without loading it into the execution
// context.
Assembly.ReflectionOnlyLoad displayName |> ignore
// Display the assemblies loaded into the execution and
// reflection-only contexts. System.dll appears in both contexts.
printfn "------------- Execution Context --------------"
for a in AppDomain.CurrentDomain.GetAssemblies() do
printfn $"\t{a.GetName()}"
printfn "------------- Reflection-only Context --------------"
for a in AppDomain.CurrentDomain.ReflectionOnlyGetAssemblies() do
printfn $"\t{a.GetName()}"
Imports System.Reflection
Imports System.Timers
Public Class Example
Public Shared Sub Main()
' Get the assembly display name for System.dll, the assembly
' that contains System.Timers.Timer. Note that this causes
' System.dll to be loaded into the execution context.
'
Dim displayName As String = GetType(Timer).Assembly.FullName
' Load System.dll into the reflection-only context. Note that
' if you obtain the display name (for example, by running this
' example program), and enter it as a literal string in the
' preceding line of code, you can load System.dll into the
' reflection-only context without loading it into the execution
' context.
Assembly.ReflectionOnlyLoad(displayName)
' Display the assemblies loaded into the execution and
' reflection-only contexts. System.dll appears in both contexts.
'
Dim ad As AppDomain = AppDomain.CurrentDomain
Console.WriteLine("------------- Execution Context --------------")
For Each a As Assembly In ad.GetAssemblies()
Console.WriteLine(vbTab + "{0}", a.GetName())
Next a
Console.WriteLine("------------- Reflection-only Context --------------")
For Each a As Assembly In ad.ReflectionOnlyGetAssemblies()
Console.WriteLine(vbTab + "{0}", a.GetName())
Next a
End Sub
End Class
Açıklamalar
Bu yöntem, yalnızca yansıma bağlamı içine yüklenen derlemeleri döndürür. Yürütme için yüklenen derlemeleri almak için yöntemini kullanın GetAssemblies .