Je suis en train d'essayer d'obtenir l'Unité pour gérer la création de mes objets et je veux avoir certains paramètres d'initialisation qui ne sont connus qu'au moment de l'exécution:
Pour le moment la seule façon que je pouvais penser de la façon de le faire est d'avoir une méthode d'Initialisation de l'interface.
interface IMyIntf {
void Initialize(string runTimeParam);
string RunTimeParam { get; }
}
Puis de l'utiliser (dans l'Unité), je ferais ceci:
var IMyIntf = unityContainer.Resolve<IMyIntf>();
IMyIntf.Initialize("somevalue");
Dans ce scénario, runTimeParam
param est déterminé au moment de l'exécution en fonction de l'entrée utilisateur. Le cas trivial ici renvoie simplement la valeur de runTimeParam
mais en réalité, le paramètre sera quelque chose comme nom de fichier et la méthode initialize de faire quelque chose avec le fichier.
Cela crée un certain nombre de questions, à savoir que l' Initialize
la méthode est disponible sur l'interface et peut être appelée plusieurs fois. Définition d'un indicateur dans la mise en œuvre et de les jeter exception sur les appels répétés à l' Initialize
semble de façon maladroite.
Au point où j'ai régler mon interface, je ne veux pas savoir quelque chose au sujet de la mise en œuvre de l' IMyIntf
. Ce que je veux, cependant, est le fait de savoir que l'interface a besoin d'un temps d'initialisation des paramètres. Est-il un moyen en quelque sorte de les annoter(attributs?) l'interface avec ces informations, celles-cadre lorsque l'objet est créé?
Edit: Décrit l'interface un peu plus.