Можно ли использовать окно просмотра Visual Studio в моем собственном приложении? - PullRequest
2 голосов
/ 09 февраля 2010

У меня есть базовое приложение для обмена сообщениями, которое принимает запросы от клиентов и возвращает им объекты ответа. Когда я сталкиваюсь с неправильно сформированным объектом запроса, я сериализую его в журнал базы данных для неудачных запросов в двоичном поле. Я хотел бы иметь возможность десериализовать эти искаженные объекты запроса и осмотреть их по факту.

Есть ли способ использовать окно Visual Studio Watch (или что-то подобное) в моем собственном приложении? Я знаю сетку свойств, и это то, что я сейчас использую, но было бы здорово использовать окно наблюдения для проверки объектов, так как большинство разработчиков знакомо с окном наблюдения.

Ответы [ 3 ]

1 голос
/ 09 февраля 2010

Как насчет использования самой Visual Studio? Вы уже знаете, как сериализовать (и поэтому я предполагаю десериализацию) объект. Почему бы не написать приложение, чтобы десериализовать его, а затем подключить к этому отладчику VS?

0 голосов
/ 12 августа 2010

Что вы предпочитаете в окне просмотра над сеткой свойств? Это возможность оценить пользовательское выражение или просто пользовательский интерфейс?

Если это первое, то

Я не знаю ничего из коробки, которая позволила бы вам это сделать, самое близкое (без подключения отладчика) это Crack.NET (см. это picture), и вы можете теоретически включить это окно скрипта в свой собственный проект (в конце концов, это открытый исходный код), но тогда вам придется писать выражения на Python, а не на C #.

Что касается более самостоятельного подхода, вы можете использовать CodeDom для компиляции выражения в метод, который выглядит следующим образом:

object Evaluate(RequestObject request)
{
     return   ... your expression goes here ... ;
}

А затем загрузите DLL, которую вы автоматически скомпилировали, для динамического вызова этого метода, а затем, если хотите, представьте возвращаемое значение в сетке свойств.

0 голосов
/ 10 февраля 2010

Я бы использовал элемент управления PropertyGrid . Может использоваться для проверки одного объекта за раз.

...