Некоторые примеры наверняка помогут здесь.
Одна из ключевых вещей, которая не совместима с CLS, - это числа без знака (например, uint).Другой - это указатели на функции (делегаты).Если это не будет иметь смысла на обоих концах строки, то это не «общее»;CLS определяет набор общих типов, которые работают не только в CLR, но также в определенных общих и специфических сценариях взаимодействия.
Если вы хотите обеспечить соответствие CLS, вы можете добавить атрибут "CLSCompliant" всборку, добавив ее в файл assemblyinfo.cs в проекте.
[assembly: CLSCompliant(true)]
Вы также можете добавить его в качестве атрибута для класса.
[CLSCompliant(true)]
public class HospitalLocationEntity : EntityBase
{
...
}
Выполнение этих действий приведет ккомпилятор C # (или VB с соответствующим синтаксисом VB для атрибутов), чтобы вызвать ошибки компиляции для нарушений соответствия CLS.
Кроме того, добавление атрибутов [ScriptService] и [ScriptMethod] к веб-службам (.asmx)заставить службу генерировать выходные данные службы JSON и потребовать, чтобы данные, используемые для ответов службы, были помечены как CLSCompliant на уровне классов и сборок.
<System.Web.Services.WebService()> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
<ScriptService()> _
Public Class HospitalLocationService
Inherits System.Web.Services.WebService
<WebMethod()> _
<ScriptMethod()> _
Public Function GetAll() As List(Of HospitalLocationEntity)
Return (New HospitalLocation()).GetAll().Data
End Function
End Class