Ich habe eine Klasse mit zwei Konstruktoren, die so aussehen:
%Vor% Wenn ich FxCop ausführe, meldet es einen Verstoß gegen CA1062: ValidateArgumentsOfPublicMethods , denn wenn source
ist null
im ersten Konstruktor, es wird ein NullReferenceException
auf source.Name
geworfen.
Gibt es eine Möglichkeit, diese Warnung zu beheben?
Ich könnte eine Erweiterungsmethode machen, die nach Null sucht und ihr Argument zurückgibt, aber es wäre hässlich. Auch, wie ich verstehe, würde es die Warnung nicht lösen, weil FxCop nicht realisieren würde, was es tut.
Es gibt legitime Zeiten, FxCop-Warnungen zu deaktivieren, und das könnte durchaus eine sein, aber Sie können das Problem entweder durch einen ternären Ausdruck beheben, der nach Null sucht und eine Ausnahme auslöst (oder einen Standardwert ersetzt) oder einen Aufruf zu einer statischen Methode, die auf Null prüft und die entsprechende Ausnahme auslöst.
Ich würde sagen, die einzige Möglichkeit, diese Warnung zu beheben, wäre, sie auszuschalten. FxCop ist ein großartiges Werkzeug, aber manchmal müssen Sie daran denken, dass es nur ein Werkzeug ist und Vorschläge machen kann, die nicht immer zu Ihrem Code passen.
In diesem Beispiel würde ich sagen, ignorieren Sie die Warnung oder deaktivieren Sie sie, wenn Sie sie nicht sehen wollen.
Tags und Links .net c# constructor fxcop ca1062