Methode Target Attribute kun 1 gang pr klasse
Hej EksperterJeg sidder med et spørgsmål omkring Attributter og valideringer
Jeg har nogen klasser jeg henter ved og skanne mit assembly for Attributter "NSValidatorAttribute".
Jeg loader dem alle i starten af mit program, før hovedrutinen begynder.
men mit problem er lidt mere et sandkorn i skoen.
jeg bruger lige pt Attributter til og angive methoder som er optionelle i sammenhæng med NSValidatorAttribute, men jeg vil gerne have så man kun kan angive een Methode til og udfør et specifikt job.
Så man kun har een Methode der f.eks gør noget på PreInit, og een methode der udføre på PostInit (pr. klasse der har NSValidatorAttribute).
min kode ser sådan her ud.
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public class NSValidatorAttribute : Attribute
{
private string _NS;
private string _Name;
private int _Priority = 10;
public NSValidatorAttribute(string ns, string name)
{
this._NS = ns;
this._Name = name;
}
public virtual string Name { get { return _Name; } }
public virtual string Namespace { get { return _NS; } }
public virtual int Priority { get { return _Priority; } set { _Priority = value; } }
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class NSValidatorPreInitializationAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class NSValidatorInitializationAttribute : Attribute
{
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class NSValidatorPostInitializationAttribute : Attribute
{
}
[NSValidator("http://localhost/namespaces/item/0872", "item0872", Priority = 8)]
public class NamespaceValidator0872 : NamespaceValidator
{
#region Disse vil blive triggered hver gang der et match
/// <summary>
/// Instruktioner til PreInit
/// </summary>
///
[NSValidatorPreInitialization] public void PreInitialization() { }
/// <summary>
/// Instruktioner til Init
/// </summary>
[NSValidatorInitialization] public void Initialization() { }
/// <summary>
/// Instruktioner til PostInit
/// </summary>
[NSValidatorPostInitialization] public void PostInitialization() { }
#endregion
public override bool Valid(System.Xml.XmlNode node)
{
throw new NotImplementedException();
}
}
public abstract class NamespaceValidator
{
public abstract bool Valid(System.Xml.XmlNode node);
}