有一个问题让我有点疯狂。我有一个包含usercontrols的winforms项目,它使用另一个项目中的类型,该项目由add project引用。我已经检查了引用,它们都很好,UI项目中只有一个引用到服务,这是通过添加项目引用。我可以通过删除resx文件或在设计器中设置使用resx的错误行来解决此问题。但是每次我都这么做时间。我用谷歌搜索死亡,并在这里检查没有喜悦。任何人都有任何指针。堆栈跟踪错误如下
TIA
错误:
Object of type 'NewSchool.Services.Document.IDocumentDto[]' cannot be converted to type 'NewSchool.Services.Document.IDocumentDto[]'.
堆栈追踪:
at System.RuntimeType.CheckValue(Object value, Binder binder, CultureInfo culture, BindingFlags invokeAttr) at System.Reflection.RtFieldInfo.InternalSetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, Boolean doVisibilityCheck, Boolean doCheckConsistency) at System.Reflection.RtFieldInfo.InternalSetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, Boolean doVisibilityCheck) at System.Runtime.Serialization.FormatterServices.SerializationSetValue(MemberInfo fi, Object target, Object value) at System.Runtime.Serialization.ObjectManager.CompleteObject(ObjectHolder holder, Boolean bObjectFullyComplete) at System.Runtime.Serialization.ObjectManager.DoNewlyRegisteredObjectFixups(ObjectHolder holder) at System.Runtime.Serialization.ObjectManager.RegisterObject(Object obj, Int64 objectID, SerializationInfo info, Int64 idOfContainingObj, MemberInfo member, Int32[] arrayIndex) at System.Runtime.Serialization.Formatters.Binary.ObjectReader.RegisterObject(Object obj, ParseRecord pr, ParseRecord objectPr, Boolean bIsString) at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObjectEnd(ParseRecord pr) at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(ParseRecord pr) at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run() 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 System.Resources.ResXDataNode.GenerateObjectFromDataNodeInfo(DataNodeInfo dataNodeInfo, ITypeResolutionService typeResolver) at System.Resources.ResXDataNode.GetValue(ITypeResolutionService typeResolver) at System.Resources.ResXResourceReader.ParseDataNode(XmlTextReader reader, Boolean isMetaData) at System.Resources.ResXResourceReader.ParseXml(XmlTextReader reader)
答案 0 :(得分:0)
唯一容易想到的是你有某种循环参考。 也许在这种情况下,这是由于引用了服务而另一个项目引用了类。
您是否需要与服务项目进行交互?
答案 1 :(得分:0)
我敢打赌你在一些控件中将IDocumentDto []作为属性公开?
为什么会发生我无法告诉你。 (我认为这与Visual Studio试图在设计时创建接口实例以在属性网格中公开它有关,但我可能错了。我不是一个GUI人,我的99%的工作都在中间层。)
要修复它,我创建实际的方法(不是属性)来获取和设置变量。
答案 2 :(得分:0)
这恰好发生在我身上,并没有那些解决方案适合我。 我终于找到了原因。 Designer添加了resx文件,用于在屏幕上放置BindingSource。 还有一个奇怪的资源,一个控件放在控件上,没有任何价值。 删除这些资源后,它会再次运行。