在我的项目中,我有一个用于从文件加载对象的函数:
public static ObjectBase LoadObject(string _filePath, string _name)
{
ObjectBase module = null;
try
{
IFormatter formatter = new BinaryFormatter();
Stream streamRead = new FileStream(_filePath, FileMode.Open, FileAccess.Read, FileShare.None);
object ob = formatter.Deserialize(streamRead);
module = (ob as ObjectBase);
streamRead.Close();
}
catch (Exception ex)
{
return null;
}
finally
{
}
return module;
}每次运行此函数时,我都会遇到异常:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: Operation is not valid due to the current state of the object.
at Cognex.VisionPro.Implementation.Internal.ccComFactory.CreateInstance()
at Cognex.VisionPro.FGGigE.Implementation.Internal.CogAcqFifoGigE._com()
at Cognex.VisionPro.FGGigE.Implementation.Internal.CogAcqFifoGigE..ctor(SerializationInfo info, StreamingContext context)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.SerializationInvoke(IRuntimeMethodInfo method, Object target, SerializationInfo info, StreamingContext& context)
at System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context)
at System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder) at System.Runtime.Serialization.ObjectManager.DoFixups()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
at My code file.
Message: "Operation is not valid due to the current state of the object." Source: "Cognex.VisionPro.FGGigE" StackTrace:
at Cognex.VisionPro.Implementation.Internal.ccComFactory.CreateInstance()
at Cognex.VisionPro.FGGigE.Implementation.Internal.CogAcqFifoGigE._com()
at Cognex.VisionPro.FGGigE.Implementation.Internal.CogAcqFifoGigE..ctor(SerializationInfo info, StreamingContext context)有谁有主意吗?我真的很感谢你的帮助!
发布于 2020-07-08 18:53:12
在尝试使用以下代码行加载vpp文件(cognex)时,我也遇到了同样的问题。
cogJobManager = CogSerializer.LoadObjectFromFile(jobFilesPath) as CogJobManager;我的解决方案是在Build选项卡下的项目属性中取消选中“首选32位”,并将其编译为任意CPU
在那之后问题就解决了
https://stackoverflow.com/questions/61750936
复制相似问题