Question

Je tourne sur [assemblage: System.CLSCompliant (true)] à l'intérieur des ensembles de ma solution C #

.

Je reçois maintenant quelques avertissements à l'intérieur du code généré pour un service Web SharePoint.

Voici une des méthodes qui ne sont pas conformes CLS:

    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.microsoft.com/sharepoint/soap/GetItem", RequestNamespace="http://schemas.microsoft.com/sharepoint/soap/", ResponseNamespace="http://schemas.microsoft.com/sharepoint/soap/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    public uint GetItem(string Url, out FieldInformation[] Fields, [System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] out byte[] Stream) {
        object[] results = this.Invoke("GetItem", new object[] {
                    Url});
        Fields = ((FieldInformation[])(results[1]));
        Stream = ((byte[])(results[2]));
        return ((uint)(results[0]));
    }

Comment puis-je supprimer cet avertissement?

Merci, Keith

Était-ce utile?

La solution

Je vous recommande de placer vos références Web dans un projet de bibliothèque de classe distincte qui n'est pas réglé pour être conforme CLS. Référence de cette bibliothèque à partir de votre code principal.

Autres conseils

Vous pouvez marquer les méthodes non conformes avec l'attribut [CLSCompliant(false)] pour éviter les mises en garde, mais qui semble vaincre l'objet de marquer vos assemblages comme étant conforme en premier lieu: Je suppose que vous voulez que le code soit réellement conforme CLS.

Pour rendre le code conforme, vous devez modifier le type de retour de la méthode UInt32 . types non signés ne sont pas exposés CLS conformes.

Vous pouvez revenir long / Int64 à la place. Le type de long est conforme CLS et en toute sécurité gérer toute valeur uint possible.

Si vous ne pouvez pas, ou ne sera pas, modifier le code généré (soit ajouter l'attribut ou de modifier le type de retour), alors je pense que votre seule option est de déplacer ce code à un ensemble séparé, non conforme < a href = "https://stackoverflow.com/questions/1140716/how-do-i-handle-cls-compliant-within-a-web-reference/1140773#1140773"> comme John suggère .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top