2009-10-19 41 views
0

有一个问题,这使我在这里有点坚果。我有一个winforms项目包含usercontrols,使用来自另一个项目,通过添加项目引用的类型。我检查了引用,并且它们都很好,从UI项目到服务只有一个引用,并且是通过添加项目引用。我可以通过删除resx文件或者在设计器中设置使用resx的错误行为null来解决此问题。不过,我每次都要花这么多时间来做这件事。我用Google搜索了一下,并且没有任何快乐地在这里过关。任何人都有指点。错误下面是堆栈跟踪Visual Studio 2008,WinForms设计器类型转换

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

感谢您的回答,我检查了参考文献,发现没有任何循环,如果情况确实如此,我相信它不会构建。 – user344836 2009-10-21 10:28:28

0

我敢打赌,你是暴露IDocumentDto []作为一些控制属性?

为什么发生我不能告诉你。 (我认为它与Visual Studio试图在设计时创建接口的一个实例以在属性网格中公开它有关系,但我可能是错误的。我不是一个GUI人员,我的工作中有99%是在中间层)。

为了解决它,我创建了实际的方法(不是属性)来获取和设置变量。

+0

感谢您的回答。 对不起,我应该说,这个属性是从控件中暴露出来的,并且该视觉工作室试图在设计器中创建一个值,尽管我已经将可浏览的虚假属性表明它不应该显示出来在属性窗口中。我想我可以使用方法来访问这些东西,但它看起来有点像Visual Studio的错误 – user344836 2009-10-21 10:29:34

0

它只是发生在我身上,而非那些解决方案为我工作。 我终于找出原因。 Designer添加了用于在屏幕上放置BindingSource的resx文件。 还有一个控件放在控件上的怪异资源没有任何价值。 删除这些资源后,它再次工作。

相关问题