Загрузка сборок System.Transaction

Я пытаюсь сделать список всех ссылочных сборок и сборок в AppDomain. Каждый раз я получаю 25 сборок ссылок, а после этого - 39 сборок в AppDomain. Но если я позвоню AppDomain.CurrentDomain.GetAssemblies() еще раз, я получаю еще одну сборку - "System.Transactions". Итак, чтобы составить список всех сборок, я использую код ниже:

Console.WriteLine(GetRefAssemblies().Count());
foreach (Assembly asm in GetRefAssemblies())
{
    if (!asmList.Contains(asm)) asmList.Add(asm);
    foreach (Type t in asm.GetTypes())
    {
        if (!dict.ContainsKey(t) && t.GetConstructor(Type.EmptyTypes) != null)
        {
            dict.Add(t, t.GetConstructor(Type.EmptyTypes));
        }
    }
}
Console.WriteLine(AppDomain.CurrentDomain.GetAssemblies().Count());
foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies())
{
    if (!asmList.Contains(a)) asmList.Add(a);
    foreach (Type t in a.GetTypes())
    {
        if (!dict.ContainsKey(t) && t.GetConstructor(Type.EmptyTypes) != null)
        {
            dict.Add(t, t.GetConstructor(Type.EmptyTypes));
        }
    }
}
Console.WriteLine(AppDomain.CurrentDomain.GetAssemblies().Count());
foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies())
{
    if (!asmList.Contains(a)) Console.WriteLine(a.FullName);
    foreach (Type t in a.GetTypes())
    {
        if (!dict.ContainsKey(t) && t.IsClass && t.GetConstructor(Type.EmptyTypes) != null)
        {
            dict.Add(t, t.GetConstructor(Type.EmptyTypes));
        }
    }
}

где GetRefAssemblies() загружает и возвращает все ссылки на сборки. Вот скриншот с выводом: [

Почему System.Transactions загружается после сканирования сборок в AppDomain? Как мне оптимизировать мой код?

0 ответов

Другие вопросы по тегам