2012-02-03 4 views
0

С того, что я читал онлайн, если поле находится в private, оно может начинаться с ведущего _. Однако когда я делаю следующее, он жалуется? Это потому, что я возвращаю личное поле? Не имеет смысла для меня, так как все, что потребляет это, не имеет понятия о _myObject, так почему это имеет значение?Почему это не соответствует cls?

private MyBusinessObject _myObjectBO; 

protected MyBusinessObject MyObjectBO 
{ 
    get { return _myObjectBO ?? (_myObjectBO= new MyBusinessObject()); } 
} 
+0

Что говорит об ошибке? Что такое «MyObject»? – SLaks

+0

Предупреждение говорит: «Тип« My.Namespace.MyService.MyObjectBO »не является жалобой CLS». Я просто использую это в службе WCF для вызова моего BO, который имеет обычные методы для получения данных и т. Д. – MisterIsaak

+2

Как выглядит «MyBusinessObject»? Вот в чем проблема. – svick

ответ

4

сообщение заявляет, что имущество в типа не соответствует.
Проверьте класс MyBusinessObject; многие разработчики забыли добавить [assembly: CLSCompliant(true)] (к сожалению, он не входит в стандартный шаблон)

1

Ничего из этого по существу не соответствует требованиям CLS. Как выглядит MyObject? Я проверил с помощью следующего кода, и не получил никаких предупреждений соответствия ЦБС во время компиляции:

[CLSCompliant(true)] 
public class Program 
{ 
    private MyObject _myObject; 

    [CLSCompliant(true)] 
    public MyObject ComplaintTypeBO 
    { 
     get { return _myObject ?? (_myObject = new MyObject()); } 
    } 

    static void Main(string[] args) 
    { 
    } 
} 

[CLSCompliant(true)] 
public class MyObject 
{ 
} 

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

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