hinzufügen Ist es möglich, in C# MSIL-Code zu schreiben, die eine Präprozessordirektive zum Code hinzugefügt werden, beispielsweise #warning
, wenn eine bestimmte Bedingung erfüllt ist? Oder vielleicht kann dies mit Nachdenken getan werden, ich weiß es nicht.C#: Schreiben MSIL eine Präprozessordirektive
Ich versuche, eine Gewohnheit zu schreiben Attribut, das, wenn sie falsch zu einer Klasse Methode oder Eigenschaft angewandt wird, wird eine Compiler-Warnung erzeugen. Die Verwendung des vorhandenen Attributs Obsolete
funktioniert nicht, da dann nur die Verwendung meines benutzerdefinierten Attributs die Warnung verursacht, und das möchte ich nicht. Ich möchte, dass der benutzerdefinierte Attributkonstruktor nach einer Bedingung sucht. Wenn diese Bedingung zutrifft, wird eine Kompilierungswarnung ausgegeben.
Update: nach dem Zurücklesen über meine Frage, ich denke, was ich verlange, ist unmöglich, nur weil ich kompilieren Zeit und Laufzeit Einschränkungen mischen. Ich denke, ich werde am Ende mit einer Post-Build-Aufgabe gehen, um die gerade erstellte DLL zu überprüfen und Fehlermeldungen ausgeben zu lassen, wenn die Bedingung zutrifft.
Ich denke, was Sie sagen, Sie möchten ein benutzerdefiniertes Attribut auf eine Methode angewendet werden und eine # Warning-Direktive ausgeben, wenn eine Bedingung erfüllt ist .. Ich glaube nicht, dass Sie dies tun können, da eine # warning eine Kompilierung ist Zeit Direktive .. – t0mm13b
Gute Frage übrigens ... +1 von mir ... – t0mm13b