Ich möchte eine benutzerdefinierte Ausnahme definieren, die zwei spezielle Eigenschaften hat: Field und FieldValue, und ich möchte die Nachricht aus diesen beiden Werten im Ausnahmekonstruktor erstellt werden. Leider ist die Nachricht nur lesbar.Wie kann eine Ausnahme ihre eigene Nachricht in C# definieren?
Dies ist, was ich habe, aber es erfordert immer noch die Nachricht zu übergeben.
public class FieldFormatException: FormatException
{
private Fields _field;
private string _fieldValue;
public Fields Field{ get{ return _field; } }
public string FieldValue { get { return _value; } }
public FieldFormatException() : base() { }
private FieldFormatException(string message) { }
public FieldFormatException(string message, Fields field, string value):
base(message)
{
_fieldValue = value;
_field = field;
}
public FieldFormatException(string message, Exception inner, Fields field, string value):
base(message, inner)
{
_fieldValue = value;
_field = field;
}
protected FieldFormatException(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context): base(info, context){}
}
Wie kann ich die Nachricht als Parameter aus dem Konstruktor, entfernen und dann die Nachricht über den Wert von Field und Fieldvalue basierend eingestellt?
Ich habe gerade darüber nachgedacht, direkt nachdem ich die Frage gepostet habe. Vielen Dank! –
Ja, das funktioniert.Der Schlüssel besteht darin, die BuildMessage statisch zu machen und ihr das Feld und den Wert zu übergeben. –