2009-10-19 72 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文件。 還有一個控件放在控件上的怪異資源沒有任何價值。 刪除這些資源後,它再次工作。

相關問題