2010-08-02 17 views
5

Estoy tratando de hacer que un envoltorio para un objeto COM sea más fácil de trabajar al depurar agregando un atributo DebuggerTypeProxy - el atributo parece funcionar en algunas ocasiones (al ejecutar pruebas unitarias, etc. ...), pero no funciona cuando estoy depurando el proceso objetivo y no sé por qué:Diagnosticar por qué los atributos DebuggerTypeProxy no funcionan

  • He comprobado que el ensamblaje correcto se está cargando en la ventana de módulos , e incluso desarmó el ensamblado para asegurarse de que es el correcto y tiene los atributos correctos, etc. ...
  • He intentado hacer públicas mis clases de proxy de depuración, pero eso no hizo ninguna diferencia.
  • He utilizado la reflexión en la ventana Inmediato al depurar mi proceso externo y he visto que el atributo que he definido parece ser correcto.

Otras clases que tienen atributos DebuggerTypeProxy define en ellos (en el mismo conjunto) parecen estar funcionando bien - No puedo entender por qué

  • ¿Hay alguna otra razón por la que mi atributo DebuggerTypeProxy no estaría trabajando en el proceso de destino?
  • ¿Hay alguna otra forma de depuración/solución de problemas de la razón por la cual el atributo no tiene ningún efecto?

Respuesta

1

Dado que está trabajando en Visual Studio 2010, mi sospecha es que la característica Insertar tipos de interoperabilidad está causando este problema. Intenta desactivar Tipos de interoperabilidad incrustados y repite tu solución.

  • ir al elemento referencias en el Explorador de soluciones
  • Seleccionar todas las referencias
  • que aparezca la cuadrícula de propiedades
  • cambio "Tipos Insertar Interop" false
  • Reconstruir

Entonces repite tu escenario

+0

Ah, disculpe, he olvidado la pregunta VS2010, pero esto realmente está sucediendo en VS2008. (lo siento) – Justin

+0

@Kragen de alguna manera se perdió su comentario. Qué idioma estás usando? – JaredPar

+0

El proxy del tipo de depurador, etc ... está escrito en C# – Justin

2

Tuve este mismo problema y encontré que la respuesta era desmarcar la opción "Mostrar la estructura sin formato de los objetos en ventanas de variables" en Herramientas> Opciones> Depuración> Configuración general.

+0

Esto ya está marcado, pero gracias por la sugerencia. – Justin

1

En la aplicación Asp.net, el problema estaba en la seguridad del acceso del código. Cuando la aplicación se ejecuta con plena confianza, todo estaba bien. Con confianza parcial: los atributos de DebuggerTypeProxy no funcionan

0

También he tropezado con este problema.

DebuggerTypeProxy no funcionaba correctamente en Medium Trust.

El problema se resolvió moviendo la clase DebuggerTypeProxy de ser una clase anidada privada (en una clase contenedora para la cual es un proxy depurador) a ser una clase interna directamente debajo del espacio de nombres (no anidado).

Por si acaso alguien más también tropieza con el mismo problema.

0

Uso Gestionado modo de compatibilidad debe estar sin marcar en Herramientas, Opciones, Depuración, general.

Cuestiones relacionadas