2009-07-08 2 views
3

Я хотел бы получить доступ к некоторым внутренним классам .NET Framework, но использование отражения не очень читаемо и забавно использовать.Есть ли инструмент для автоматического создания оболочек вокруг классов?

Известно ли, существует ли инструмент для создания классов-оболочек автоматически вокруг этих внутренних классов?

ответ

3

Ну, Visual Studio может создавать обертки вокруг ваших собственных классов для целей модульного тестирования. Это называется теневыми классами или теневыми сборками. Это можно использовать, чтобы сделать то же самое для классов framework.

Есть несколько ручных операций:

Во-первых, создать framework.accessor файл, который представляет собой обычный текстовый файл, который должен содержать имена сборок вы хотели бы иметь тени, созданные для вашего проекта (должен также ссылайтесь на сборки). Например:

System.dll 

Затем вручную редактировать файл .csproj и добавьте ItemGroup:

<ItemGroup> 
    <Shadow Include="framework.accessor" /> 
</ItemGroup> 

Построить проект. Теперь вы сможете получить доступ к внутренним классам и частным методам, используя сгенерированные классы * _Accessor.

Здесь good blog post по этому вопросу (из которого я также получил большую часть информации для этого ответа).

Помните, что использование частных методов и классов из библиотеки - это плохая практика, но я предполагаю, что у вас есть свои причины.

+0

спасибо, я знаю, что это плохая практика, но это просто для быстрого и грязного приложения. (Чтобы быть конкретным, мне нужно получить доступ к Microsoft.VisualBasic.CompilerServices, чтобы быстро перенести приложение vb.net на приложение C#) –

Смежные вопросы