So, I've been using VS11 for all my development lately (it's ridiculously faster than VS2010). One of the great new features is that you can quickly and easily search through the Error List and find warnings you actually care about (we have 1700 warnings in Lucene.NET).
If you do a search for CLS, you'll find we only have 53 violations! This is great news, because it means that we are getting ever closer to fixing this issue.
However, here's the issue we need to address, that is not so simple. Of course, the main issue we have with CLS Compliance is having identifiers only differing in case. This is due in part to
LUCENENET-468, where some properties now have the same name differing only in case with protected internal fields.
Now, in many cases, this isn't an issue, since you can just turn it into an automatic property, where the setter is protected internal. However, my guts tells me it's not okay to do with properties that are virtual. So, how can we solve this? It seems we need to change the name of one of them, and prefixing the field with an underscore is not only the wrong naming style, it's actually not CLS compliant.