C# 二进制反序列化中的“对象引用未设置为对象实例”

C# 二进制反序列化中的“对象引用未设置为对象实例”,c#,sqlite,serialization,nullreferenceexception,binaryformatter,C#,Sqlite,Serialization,Nullreferenceexception,Binaryformatter,我正在序列化一个类对象,并将其作为C应用程序中的BLOB存储在sqlite数据库中 用于序列化的函数:公共静态字节[]ObjectToByteArray AnalyzeSubstring obj 在另一个应用程序上,获取blob数据库并通过反序列化将blob数据库转换为对象。 反序列化的函数是:公共静态AnalyzeSubstring ByteArrayTobObject byte[]arrBytes 问题:在反序列化AnalyzeSubstring obj=AnalyzeSubstring

我正在序列化一个类对象,并将其作为C应用程序中的BLOB存储在sqlite数据库中

用于序列化的函数:公共静态字节[]ObjectToByteArray AnalyzeSubstring obj

在另一个应用程序上,获取blob数据库并通过反序列化将blob数据库转换为对象。 反序列化的函数是:公共静态AnalyzeSubstring ByteArrayTobObject byte[]arrBytes

问题:在反序列化AnalyzeSubstring obj=AnalyzeSubstring binForm.Deserialize memStream;时在线

它错误地失败了

对象引用未设置为对象的实例

但是,如果我们只在同一个应用程序中执行这两个操作,那么这将正常工作


请帮助

您是如何声明AnalyzeSubstring的。这表明在分离该方法时未正确实例化该方法。别忘了你必须通过项目依赖关系引用它。我在两个应用程序中使用了相同的类AnalyzeSubstring。如何通过项目依赖关系引用它?在VS中,你创建了一个解决方案。然后在该解决方案中创建1:N个项目。您的第一个项目将在类中具有该方法。然后,第二个项目需要引用第一个项目,以访问其属性和方法。在第二个项目引用上单击鼠标右键,然后选择“添加引用”。确定。。让我试试。:@bilpor:有没有什么方法,我不需要添加引用。使两个项目相互独立。从我的应用程序中,我只想从数据库中获取blob数据。您是如何声明AnalyzeSubstring的。这表明在分离该方法时未正确实例化该方法。别忘了你必须通过项目依赖关系引用它。我在两个应用程序中使用了相同的类AnalyzeSubstring。如何通过项目依赖关系引用它?在VS中,你创建了一个解决方案。然后在该解决方案中创建1:N个项目。您的第一个项目将在类中具有该方法。然后,第二个项目需要引用第一个项目,以访问其属性和方法。在第二个项目引用上单击鼠标右键,然后选择“添加引用”。确定。。让我试试。:@bilpor:有没有什么方法,我不需要添加引用。使两个项目相互独立。从我的应用程序中,我只想从数据库中获取blob数据。
public static byte[] ObjectToByteArray (AnalyzeSubstring obj)
              {
              if ( obj == null )
                  return null;
              BinaryFormatter bf = new BinaryFormatter ();
              //bf.AssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple;
              MemoryStream ms = new MemoryStream ();
              bf.Serialize (ms, obj);
              return ms.ToArray ();
              }

          public static AnalyzeSubstring ByteArrayToObject (byte[] arrBytes)
              {
              MemoryStream memStream = new MemoryStream ();
              BinaryFormatter binForm = new BinaryFormatter ();
              memStream.Write (arrBytes, 0, arrBytes.Length);
              memStream.Seek (0, SeekOrigin.Begin);
              AnalyzeSubstring obj = (AnalyzeSubstring) binForm.Deserialize (memStream);
              return obj;
              }