title: "Type is not cls-compliant" warning in some places but not in others
body: <p>I have really simple model class in C# with 5 auto properties - 4 <code>int</code> and one <code>string</code></p>
  
  <pre class="lang-cs prettyprint-override"><code>public class MyModel
  {
  
      public int id { get; set; }
      public int refId { get; set; }
      public int type { get; set; }
      public int mappingId { get; set; }
      public string name { get; set; }
  
  }
  </code></pre>
  
  <p>I have in vb.net a class that makes a call and retrieves a list of this model</p>
  
  <pre class="lang-vb prettyprint-override"><code>Dim models As List(Of MyModel) = DataProvider.GetModels(refId)
  </code></pre>
  
  <p>And this is flies just fine, has been working, no warnings.</p>
  
  <p>But now I am refactoring and building an abstract base class, which receives this list of models in constructor</p>
  
  <pre class="lang-vb prettyprint-override"><code>Public MustInherit Class MySpecialBase
      Private ReadOnly _models As List(Of MyModel) ' No Warning
  
      Public Sub New (ByVal models As List(Of MyModel)) 'Warning
          _models = models
      End Sub
  
      Protected ReadOnly Property Models As List(Of MyModel) ' Warning
          Get
              Return _models
          End Get
      End Property
  End Class
  </code></pre>
  
  <p>Even in this abstract class, the warning appears on property and constructor under (Of <strong>MyModel</strong>), but not in private class member.</p>
  
  <p>I don't see how this model is not cls-compliant. Both assemblies (vb and c#) are class libraries. Can someone explain this behavior? Is it VS problem?</p>