C# 二进制反序列化中的“对象引用未设置为对象实例”
我正在序列化一个类对象,并将其作为C应用程序中的BLOB存储在sqlite数据库中 用于序列化的函数:公共静态字节[]ObjectToByteArray AnalyzeSubstring obj 在另一个应用程序上,获取blob数据库并通过反序列化将blob数据库转换为对象。 反序列化的函数是:公共静态AnalyzeSubstring ByteArrayTobObject byte[]arrBytes 问题:在反序列化AnalyzeSubstring obj=AnalyzeSubstring binForm.Deserialize memStream;时在线 它错误地失败了 对象引用未设置为对象的实例 但是,如果我们只在同一个应用程序中执行这两个操作,那么这将正常工作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
请帮助您是如何声明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;
}