Comment puis-je transmettre des arguments constructeurs lorsque j'enregistre un type dans Unity?
J'ai le type suivant d'être enregistrés dans l'Unité:
container.RegisterType<IAzureTable<Account>, AzureTable<Account>>();
La définition et les constructeurs pour AzureTable sont comme suit:
public class AzureTable<T> : AzureTableBase<T>, IInitializer where T : TableServiceEntity
{
public AzureTable() : this(CloudConfiguration.GetStorageAccount()) { }
public AzureTable(CloudStorageAccount account) : this(account, null) { }
public AzureTable(CloudStorageAccount account, string tableName)
: base(account, tableName) { }
Puis-je spécifier les arguments du constructeur dans le RegisterType ligne? J'ai besoin d'être en mesure de passer dans le nom de la table par exemple.
C'est une suite à ma dernière question. Cette question était, je crois, répondu, mais je n'ai pas vraiment clairement demander comment obtenir les arguments du constructeur.
source d'informationauteur Samantha J T Star
Vous devez vous connecter pour publier un commentaire.
Voici une page MSDN décrivant ce que vous avez besoin, L'Injection De Valeurs. Jetez un oeil à l'aide de la
InjectionConstructor
classe dans votre registre ligne de type. Vous allez vous retrouver avec une ligne comme ceci:Les paramètres du constructeur de
InjectionConstructor
sont les valeurs à transmettre à votreAzureTable<Account>
. Touttypeof
paramètres de quitter l'unité pour régler la valeur à utiliser. Sinon, il vous suffit de passer votre mise en œuvre:Ou un paramètre nommé:
Vous pourriez donner à ceci un essai:
Plus d'infos à partir de MSDN ici.