http://support.microsoft.com/kb/815065
DLL А является библиотекой, которая содержит код и данные, которые могут использоваться больше чем одной программой одновременно. Например, в операционных системах Windows, Comdlg32 DLL выполняет стандартный диалог связанные с полем функции. Поэтому каждая программа может использовать функциональность, которая содержится в этом DLL для реализации диалогового окна Open. Это помогает продвинуть повторное использование кода и эффективное использование памяти.
При помощи DLL, программа может быть построена из модулей в отдельные компоненты. Например, бухгалтерская программа может быть продана модулем. Каждый модуль может быть загружен в основную программу во время выполнения, если тот модуль установлен. Поскольку модули являются отдельными, время загрузки программы быстрее, и модуль только загружается, когда ту функциональность требуют.
Кроме того, обновления легче относиться к каждому модулю, не влияя на другие части программы. Например, у Вас могут быть программа платежной ведомости и изменение налоговых ставок каждый год. Когда эти изменения изолируются к DLL, можно применить обновление, не будучи должен создать или установить целую программу снова.
Отличный улов! Это похоже на ошибку в нашей генерации кода для индексированных свойств (неизвестная, поэтому спасибо, что сообщили об этом!) Я пробовал использовать последнюю внутреннюю сборку 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 ' я зарегистрировал ошибку об этом. Еще раз спасибо!