2012-02-03 7 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の外観は何ですか?私は、次のコードでテストされ、コンパイル時に何のCLS準拠の警告を得なかっ:

[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 
{ 
} 
関連する問題