PIA встраивает прерванный.NET 4,0 беты 2?

http://support.microsoft.com/kb/815065

DLL А является библиотекой, которая содержит код и данные, которые могут использоваться больше чем одной программой одновременно. Например, в операционных системах Windows, Comdlg32 DLL выполняет стандартный диалог связанные с полем функции. Поэтому каждая программа может использовать функциональность, которая содержится в этом DLL для реализации диалогового окна Open. Это помогает продвинуть повторное использование кода и эффективное использование памяти.

При помощи DLL, программа может быть построена из модулей в отдельные компоненты. Например, бухгалтерская программа может быть продана модулем. Каждый модуль может быть загружен в основную программу во время выполнения, если тот модуль установлен. Поскольку модули являются отдельными, время загрузки программы быстрее, и модуль только загружается, когда ту функциональность требуют.

Кроме того, обновления легче относиться к каждому модулю, не влияя на другие части программы. Например, у Вас могут быть программа платежной ведомости и изменение налоговых ставок каждый год. Когда эти изменения изолируются к DLL, можно применить обновление, не будучи должен создать или установить целую программу снова.

http://en.wikipedia.org/wiki/Dynamic-link_library

27
задан Jon Skeet 1 December 2009 в 13:51
поделиться

1 ответ

Отличный улов! Это похоже на ошибку в нашей генерации кода для индексированных свойств (неизвестная, поэтому спасибо, что сообщили об этом!) Я пробовал использовать последнюю внутреннюю сборку VS 2010, и она также воспроизводится.

Что происходит, так это то, что если вы используете инициализатор объекта, создается следующий код:

Application <>g__initLocal19 = (Application) Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("000209FF-0000-0000-C000-000000000046")));
<>g__initLocal19.set_Visible(true);

Однако, если вы устанавливаете Visible = true в отдельном операторе (без инициализатора объекта), то генерируется следующий код:

Application application = (Application) Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("000209FF-0000-0000-C000-000000000046")));
application.Visible = true;

PIA определяет только нижний, поэтому он не работает, когда вы используете инициализатор объекта. Обходной путь на данный момент - установить Visible в отдельном операторе, который должен работать нормально.

I ' я зарегистрировал ошибку об этом. Еще раз спасибо!

18
ответ дан 28 November 2019 в 05:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: