2009-07-16 3 views
0

Я собираюсь [сборка: System.CLSCompliant (true)] внутри сборок моего решения C#.Как обращаться с CLS-совместимым в веб-ссылке?

Теперь я получаю несколько предупреждений внутри сгенерированного кода для веб-службы SharePoint.

Вот один из методов, которые не являются 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])); 
    } 

Как я могу удалить это предупреждение?

Спасибо, Keith

ответ

0

Я бы порекомендовал вам разместить ссылки в Интернете в отдельном проекте библиотеки классов, который не соответствует CLS-совместимому. Ссылка на эту библиотеку из основного кода.

1

Вы можете отметить несоответствующие методы с атрибутом [CLSCompliant(false)], чтобы избежать предупреждений, но кажется, что победить объект маркировки ваших сборок как уступчивый в первую очередь: Предположительно вам хотите, чтобы код действительно был CLS-совместимым.

Для обеспечения соответствия кода вам необходимо изменить тип возврата метода от uint/UInt32. Открытые неподписанные типы не соответствуют требованиям CLS.

Вы можете вернуть long/Int64. Тип long является CLS-совместимым и безопасно обрабатывает любое возможное значение uint.

Если вы не можете или не будете редактировать сгенерированный код (либо добавить атрибут, либо изменить тип возвращаемого значения), то я думаю, что ваш единственный вариант - переместить этот код на отдельную несовместимую сборку as John suggests.

 Смежные вопросы

  • Нет связанных вопросов^_^