FxCop: CA1033 - Реализация ReadOnlyCollection от Microsoft нарушает это?

Если вы посмотрите на код коллекции, доступной только для чтения, в ней нет метода «Добавить», но вместо этого определяется ICollection .Add (T Value) (явная реализация интерфейса).

Когда я сделал что-то подобное с моим классом ReadOnlyDictionary, FxCop 10 пожаловался, что я нарушаю CA1033 .

public class ReadOnlyDictionary : IDictionary
{
    //CA1033 ERROR
    void IDictionary.Add(TKey, TValue) { //Throw Exception }
}

public class ReadOnlyDictionary : IDictionary
{
    //NO CA1033 ERROR
    Add(TKey, TValue) { //Throw Exception }
}

ReadOnlyCollectionClass:

public class ReadOnlyCollection : ICollection
{
    void ICollection.Add(T item) { //Throw Exception }
}

Итак, это ложно положительный? Базовый код Microsoft плох? Что дает?

5
задан m-y 11 July 2011 в 20:51
поделиться