我需要在对我正在编写的调试器可视化工具的调用之间持久化一个对象,但它不需要在IDE会话之间持久化。集成开发环境的EnvDTE.Globals对象似乎是存储此对象的明显位置。
如果要存储的对象的类型已经加载到IDE中,例如整数列表,我可以成功地将此类型的变量保存在全局对象中,然后在随后调用调试器可视化工具时检索它。
但是,如果要保存的变量的类型是在包含调试器可视化工具本身的程序集中声明的,或者是在可视化工具引用的本地程序集中声明的,那么一切都会出错。我可以将对象保存到全局变量中,并在对可视化工具的相同调用中检索它。但是,当我试图在随后的调用中访问它时,我可以成功地测试值是否存在,但是当我试图访问它时,IDE就失败了。
我假设发生的情况是每次使用可视化工具时调试器可视化工具的程序集都会重新加载,因此存储对象的类型与我期望的类型不匹配。好吧,那只是我的猜测。如有任何解释或变通方法,我们将不胜感激。
发布于 2009-10-15 17:48:06
您是否尝试过序列化/反序列化对象并存储序列化结果而不是对象?
发布于 2009-10-15 20:17:24
我希望维护一个WCF回调对象,并使远程客户端即使在调试器扩展未处于活动状态时也能够回调。因此,在这个特定的实例中,存储对象的序列化版本不会有任何帮助。
https://stackoverflow.com/questions/1573599
复制相似问题