2010-11-18 6 views
0

Je dois m'excuser, la question ne répond pas entièrement à mon problème. C'est un problème de C# traitant de passer un objet UDT à un webservice C#. La fin du client est une application Windows Mobile Forms.Y a-t-il une limite au nombre de caractères qu'un nom de variable/propriété peut être?

J'ai actuellement un UDT que j'ai personnellement défini et ai maintenant ajouté un nouveau membre à (une variable nommée schedulerRecordCount, la propriété est appelée SchedulerRecordCount). Avant d'ajouter ce nouveau membre, j'étais capable de passer une instance de cet objet à une méthode de service web sans problème. Après avoir ajouté le nouveau membre, je n'ai pas pu obtenir une réponse de ma méthode Web. Après avoir appelé le webmethod et avoir passé l'objet, j'obtiendrais une exception disant "impossible de lire depuis la connexion de transport".

J'ai essayé beaucoup de choses pour dépanner, et dans un dernier effort, j'ai raccourci le nom de variable à schedRecCnt et la propriété à SchedRecCnt. Cela a fait l'affaire. Comme une note, tous les autres membres de cet UDT sont de type String (ainsi que mon nouveau membre).

Est-ce que quelqu'un connaît une limitation du nombre de caractères qu'une variable peut avoir lorsqu'elle est passée à l'intérieur d'un UDT à une méthode web?

+0

Je suis sûr que cela est similaire pour les noms de variables/propriétés: http://stackoverflow.com/questions/425988/maximum-method-name-length – SwDevMan81

+0

Le maximum nommé dans une réponse est de 511 caractères. La valeur de schedulerRecordCount.Length est 20 ... Je ne suis pas votre commentaire, si cela ne vous dérange pas, pourriez-vous être un peu plus précis? – AndHeCodedIt

+1

Je dis juste que la longueur de variable/nom de propriété devrait être très grande (SchedulerRecordCount est certainement acceptable). Il doit y avoir un autre problème. – SwDevMan81

Répondre

3

Il y a bien sûr une limite à la longueur des identifiants, mais vous n'en êtes certainement pas proche. Je ne connais pas la limite exacte, mais peut-être 1000 caractères ou plus.

Vous avez peut-être atteint la limite de la taille totale du message renvoyé. Cela cadrerait avec la façon dont le raccourcissement du nom de propriété le fait fonctionner, car cela raccourcirait également la longueur totale du message.

Dans les paramètres de la liaison SOAP dans web.config sur le client, vérifiez la valeur de la propriété MaxReceivedMessageSize et augmentez-la si nécessaire.

+0

Lorsque je vais rechercher cette propriété dans MSDN, cette propriété est uniquement disponible pour les frameworks .NET 3.0 à 4.0 et non 2.0. Mon webservice et mon client sont construits sur le framework 2.0. D'autres idées? – AndHeCodedIt

2

Il n'y a pas de limite imposée par C#, mais les spécifications IDE Visual Studio coloriser seulement

511 caractères en C# et VB.Net 1023 caractères (en laissant d'autres caractères noirs).