Hw pour passer des arguments à mon Démarrage de votre propre classe?
Je suis en train de développer une api web auto-hébergement d'application à l'aide de OWIN.
Dans mon propre XyzStartup la classe, j'ai besoin d'un argument: contentFolderPath.
Cependant, je n'ai pas trouver un moyen de transmettre cet argument. Voici mon code ci-dessous:
var contentFolderPath = this.TextBox.Text; //user input
var startOptions = new StartOptions();
using(WebApp.Start<XyzStartup>(startOptions)){
}
Mon démarrage
public class XyzStartup
{
XyzStartup(string contentFolderPath) { ... }
}
J'ai remarqué qu'il y est un StartOption classe, mais ne sais pas comment l'utiliser. Puis-je utiliser dans mon XyzStartup classe?
Merci d'avance!
J'ai enfin trouver un moyen de le faire:
var startOptions = new StartOptions();
startOptions.Urls.Add('..some url ..');
WebApp.Start(startOptions, (appBuilder)=>{
new XyzStartup(contentFolderPath).Configuration(appBuilder);
}
- double possible de Passer un paramètre à OWIN d'accueil
Vous devez vous connecter pour publier un commentaire.
Si vous voulez passer le paramètre de Démarrage de classe, vous pouvez utiliser
Action<IAppBuilder>
dans WebApp.Commencer comme Cillié Malan mentionnées dans le commentaire au lieu de lancer des avec le Type de paramètre(WebApp.Start<T>
)Voici un exemple concret pour l'auto-hébergement:
Aussi loin que je peux dire, s'il a été possible avant, il n'est pas possible de passer des paramètres au démarrage de classe.
Toutefois, lorsque l'auto hébergement, j'ai remarqué que le démarrage de la classe est créé dans le même thread qui appelle
WebApp.Start
. Avec cela à l'esprit, j'ai utilisé unThreadStatic
champ de transmettre des informations au démarrage de la classe (dans mon cas, j'ai voulu passerHttpConfiguration
):Et puis d'ailleurs j'ai une autre méthode, qui débute à l'auto-hébergé site:
WebApp.Start
qui accepteAction<IAppBuilder>
, dans ce cas, vous pouvez simplement capturer tous les paramètres que vous pourriez avoir besoin.