首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IVisualizerObjectProvider GetObject引发找不到程序集异常

IVisualizerObjectProvider GetObject引发找不到程序集异常
EN

Stack Overflow用户
提问于 2015-02-09 21:38:43
回答 1查看 138关注 0票数 0

我已经为驻留在c# .net4.5程序集中的自定义类创建了一个调试器可视化工具。从System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()函数中调用GetObject时,在IVisualizerObjectProvider上找不到程序集时引发异常。

我的所有被CustomClass引用的类和父类都有Serializable属性。该程序集与MoreLinq依赖项一起放置在MyDocuments\Visual Studios 2013\Visualizers文件夹中的Debugger Visualizer程序集旁边。

有谁能给我点建议吗?

谢谢,

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Microsoft.VisualStudio.DebuggerVisualizers;


[assembly: System.Diagnostics.DebuggerVisualizer(
typeof(CustomClassVisualiser), typeof(VisualizerObjectSource),
Target = typeof(AnotherAssemblyNamespace.CustomClass), Description = "Custom    class Visualiser")]
namespace Test
{
    using System.Windows;

    using Microsoft.VisualStudio.DebuggerVisualizers;

public class CustomClassVisualiser : DialogDebuggerVisualizer
{
    protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
    {
        MessageBox.Show("In");

        var objectToVisualise = objectProvider.GetObject();// Failing here!! Unable to find assembly System.Runtime.Serialization.SerializationException

        var type = objectToVisualise.GetType(); 

            MessageBox.Show(type.FullName);

            MessageBox.Show("");

            //window.ShowDialog();
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-05-01 19:24:13

阅读你的问题,你看起来像是从一个应用程序序列化,从另一个应用程序反序列化。不是你吗?如果是这种情况,这就是问题的原因:序列化将依赖于exe的签名放在二进制文件中,并对此签名进行反序列化检查。你可以通过两种方式来解决这个问题:

由两个applications

  • Using XML序列化调用的DLL中的序列化/反序列化代码,而不是二进制序列化(这并不总是可行的,这取决于您要序列化的数据)。

您可以在this article中找到有关此情况的更多详细信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28411084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档