2016-11-21 2 views
0

Ich habe eine Klasse, die von System.Attribute erbt.Basisklasse Attribute zur Laufzeit zurückgesetzt C#

Diese Klasse wird verwendet, um die PageAttributes für beliebige Seiten festzulegen.

Können diese Attribute zur Laufzeit von einer abgeleiteten Klasse zurückgesetzt werden ?. Wenn Sie es von den abgeleiteten Klassen ändern, ändern sich die Attribute nicht.

Ich habe für alle Seiten ein Seitenebenenattribut festgelegt, das von einem Basisformular abgeleitet wird. Alle Methoden auf Seitenebene sind in Grundform geschrieben. Grundform Methoden konnten die Attribute definiert, lesen (einprogrammiert) in den Seiten, wie unten

[PageAttributeDefinition(CompleteURL = "Default.aspx")] 
public partial class Testpage: BaseForm 
{ 
} 

das Attribut „CompletrURL“ Versuchte dynamisch auf der Grundlage einer Bedingung zu verändern. Ich bin in der Lage, Instanz zu erstellen und den Wert auf das Attribut festzulegen. Wie auch immer, die Basisform-Klasse kann das modifizierte Attribut nicht lesen.

+2

Haben Sie Code? Bitte zeigen Sie uns, was Sie vorher versucht haben und erklären Sie, was falsch läuft. – RandomStranger

Antwort

1

Ich glaube nicht, dass es möglich ist, das Attribut zur Laufzeit zu ändern.

Von social.msdn:

Nein, das ist nicht möglich. Denken Sie daran, dass Attribute in der DLL oder EXE gespeichert werden, die die Klasse definiert. Um also den Wert eines Attributs zu ändern, müssen Sie im Wesentlichen diese DLL oder EXE bearbeiten. Anwendungen können ihre eigenen Binärdateien normalerweise nicht ändern, während sie ausgeführt werden. ...

+0

Ich habe für alle Seiten ein Seitenebenenattribut festgelegt, das von einem Basisformular abgeleitet wird. Alle Methoden auf Seitenebene sind in Grundform geschrieben. Baseform-Methoden konnten die auf den Seiten definierten Attribute lesen (hardcoded) [PageAttributeDefinition (CompleteURL = "Default.aspx")] öffentliche Teilklasse Testseite: BaseForm { }. Versucht, das Attribut "CompletrURL" basierend auf einer Bedingung dynamisch zu ändern. Ich bin in der Lage, Instanz zu erstellen und den Wert auf das Attribut festzulegen. Wie auch immer, die Basisform-Klasse kann das modifizierte Attribut nicht lesen. – Jay

0

Es kann kein Problem festgestellt werden, um ein Attribut zur Laufzeit zu aktualisieren. Ist das was du brauchst?

Verwandte Themen