Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IVisualizerObjectProvider GetObject引发程序集未找到异常_C#_Visual Studio 2013_Debuggervisualizer - Fatal编程技术网

C# IVisualizerObjectProvider GetObject引发程序集未找到异常

C# IVisualizerObjectProvider GetObject引发程序集未找到异常,c#,visual-studio-2013,debuggervisualizer,C#,Visual Studio 2013,Debuggervisualizer,我已经为驻留在c.net4.5程序集中的自定义类创建了一个调试器可视化工具。在IVisualizerObjectProvider上调用GetObject时,将从System.Runtime.Serialization.Formatters.Binary.BinarySassemblyInfo.GetAssembly函数引发找不到程序集异常 CustomClass和父类引用的所有my类都具有[Serializable]属性。程序集和MoreLinq依赖项位于MyDocuments\Visual S

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

CustomClass和父类引用的所有my类都具有[Serializable]属性。程序集和MoreLinq依赖项位于MyDocuments\Visual Studio 2013\Visualizers文件夹中的调试器可视化程序集旁边

有人能给我指点吗

谢谢

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();
        }
    }
}

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

在两个应用程序调用的DLL中具有序列化/反序列化代码 使用XML序列化而不是二进制序列化并不总是可能的,这取决于要序列化的数据 您可以在中找到有关此情况的更多详细信息