2009-10-19 7 views
0

Vous avez un problème qui me rend un peu fou ici. J'ai un projet winforms contenant des contrôles userc, qui utilisent des types d'un autre projet qui est référence par l'ajout de projet. J'ai vérifié les références, et tout va bien, il n'y a qu'une seule référence du projet d'interface utilisateur aux services, et c'est en ajoutant une référence de projet. Je peux contourner ce problème en supprimant le fichier resx, ou par dans le concepteur, définissant la ligne d'erreur qui utilise resx à null. Cependant, j'expédie tellement de temps à faire cela chaque fois. Ive googlé à mort et vérifié par ici sans joie. Tout le monde a des pointeurs. L'erreur est ci-dessous avec trace de la pileVisual Studio 2008, conversion de type de concepteur WinForms

TIA

Erreur:

 
Object of type 'NewSchool.Services.Document.IDocumentDto[]' cannot be converted to type 'NewSchool.Services.Document.IDocumentDto[]'. 

Stack Trace:

 
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) 

Répondre

0

La seule chose qui vient immédiatement à l'esprit est que vous avez une sorte de circulaire référence. Peut-être dans ce cas, cela est dû à la référence au Service et à l'autre projet avec référence aux classes.

Avez-vous besoin d'interagir avec le projet de service?

+0

Merci pour la réponse, j'ai vérifié les références et n'ai trouvé aucune circularité, en effet je crois que ce ne serait pas construire si c'était le cas. – user344836

0

Je parierais que vous exposer IDocumentDto [] comme une propriété dans un certain contrôle?

Pourquoi cela arrive Je ne peux pas vous le dire. (Je pense que cela a quelque chose à voir avec le Visual Studio essayant de créer une instance de l'interface pendant le design pour l'exposer dans la grille des propriétés mais je me trompe probablement: je ne suis pas un GUI et 99% de mon travail le niveau intermédiaire.)

Pour résoudre ce problème, je crée des méthodes réelles (pas une propriété) pour obtenir et définir la variable.

+0

Merci pour la réponse. Vous avez raison, désolé j'aurais dû dire, que cette propriété est exposée à partir d'un contrôle, et ce studio visuel essaie de créer une valeur dans le concepteur, même si j'ai mis l'attribut false navigable pour indiquer qu'il ne devrait pas apparaître dans la fenêtre de propriété. Je suppose que je peux utiliser des méthodes pour accéder à ces choses, mais cela ressemble un peu à un bug Visual Studio – user344836

0

Il m'est juste arrivé et aucune de ces solutions n'a fonctionné pour moi. J'ai finalement découvert la raison. Designer a ajouté le fichier resx pour placer BindingSource à l'écran. Il y avait aussi une ressource étrange d'un contrôle placé sur le contrôle sans valeur. Après avoir supprimé ces ressources, cela fonctionne à nouveau.

Questions connexes