Es ist eine interne Hilfsklasse mit internal
Sichtbarkeit. Deshalb haben Sie es nicht gefunden.
Microsoft-Quellcode verwendet dieses Muster an einer Vielzahl von Orten.
Warum aber? Es ermöglicht Ihnen, eine konsistente, schön formatierte, lokalisierte Ausnahme auszugeben, ohne diese Logik in jeden Ausnahmebehandler einfügen zu müssen.
Taking, dass ein Schritt weiter, einige Definitionen auch Compiler-Direktiven, wie enthalten:
internal static ArgumentException InvalidEnumArgument(string parameterName, int invalidValue, Type enumClass) {
#if NETFX_CORE
return new ArgumentException(Error.Format(CommonWebApiResources.InvalidEnumArgument, parameterName, invalidValue, enumClass.Name), parameterName);
#else
return new InvalidEnumArgumentException(parameterName, invalidValue, enumClass);
#endif
}
Andere Methoden (wie PropertyNull()
) mit Codeanalyse Unterdrückung Nachrichten eingerichtet.
Auch hier handelt es sich einfach um einen Convenience/Consistency-Mechanismus, um zu vermeiden, dass dieser Code überall wiederholt wird.
Ich würde wahrscheinlich nicht vorschlagen, diesen genauen Code in Ihrem eigenen Projekt zu verwenden, weil Ihre Bedürfnisse anders sein werden. Aber Sie können es sicherlich als Muster verwenden.
Ich bevorzuge noch weniger Bosterplate, mit einer Hilfsmethode, um das 'if' * und * das' throw' zu behandeln. Beispiel: 'ArgumentHelper.ThrowIfNull (arg," name ");' (was natürlich eine Erweiterungsmethode sein könnte.) –