Ninject .NET de Base
Je suis en train d'installer Ninject 3.3.2 .NET Core, Publié en Mai 2016. J'ai eu une erreur: La dépendance Ninject 3.2.2 ne supporte pas le cadre .NETCoreApp, Version=v1.0.
Quelqu'un avait le même problème, et est-il une solution pour cela?
OriginalL'auteur Dejan Dimčić | 2016-07-08
Vous devez vous connecter pour publier un commentaire.
Ninject ne prend pas en charge .NET de Base. Vous pouvez consulter son site internet pour être sûr que si il n'y a pas de version qui prend en charge.
ASP.NET de Base a son propre conteneur d'Injection de Dépendance construire. Voir ici.
Cette réponse est incorrecte (pour Core 2.0), voir la réponse de @BatteryBackupUnit
OriginalL'auteur Daniel Krawieczyński
Ninject 3.3.0 a été publié le 26 septembre 2017 et maintenant les cibles .NET Standard 2.0 et donc aussi s'exécute sur .NET Core 2.0.
De le cours des choses (voir questions/discussions sur GitHub), il semble probable que certains de ces changements dans la version 4.0 bêta seront annulées. Je ne serais pas attendu à un 4.0 final peu de temps. Donc je vous conseille d'aller avec la version actuelle 3.
Vous pouvez mettre en œuvre nécessaires interface par vous même: kristian.hellang.com/...
Notez que Xamarin.iOS ne prend pas en charge le Système.De la réflexion.Émettent de l'espace de noms. Cela signifie l'utilisation de Ninject construit pour .NET Standard était impossible pour moi. J'ai dû utiliser la bibliothèque pour MonoTouch.
OriginalL'auteur BatteryBackupUnit
Voulais juste ajouter; tandis que les deux réponses précédentes sont correctes dans cette ASP.Net de base n'est intégré dans l'injection de dépendance, il n'est PAS suffisant pour des configurations plus avancées. Comme il ne prend pas en charge toute une panoplie de fonctionnalités que Ninject, AutoFac, de l'Unité, ou StructureMap prend en charge.
À l'heure actuelle, la seule DI bibliothèques que je suis conscient de que soutient pleinement .net de base sont AutoFac et maintenant L'unité. Il est très simple de l'ajouter. La seule chose que vous devez faire pour remplacer le bâti de la DI est comme suit. Cet exemple est pour AutoFac mais son presque identique pour l'Unité, il ressemble.
Tout d'abord, remplacer le vide sur ConfigureServices en démarrage.cs avec un IServiceProvider (la dépendance de l'AutoFac) comme suit:
Puis créer un conteneur de constructeur, de construire et de résoudre un IServiceProvider de ConfigureServices:
J'ai un wrapper autour de cette deuxième partie qui permet de charger dynamiquement et de construire les différentes configurations à l'aide de AutoFac modules, que je pourrais être convaincu à télécharger sur GitHub ou quelque chose si il n'y a aucun intérêt.
Ressemble Ninject 4.0 peut-être à l'appui .net de base. Bien qu'encore en version bêta.
OriginalL'auteur Brandon
Ninject ne prend pas en charge .Net de Base, au lieu de cela, nous pouvons utiliser l'injection de dépendance .net de base. voici les étapes à mettre en œuvre.
public void
ConfigureServices(IServiceCollection services)
services.AddTransient<Interface, Class>();
private Interface _propertyName;
OriginalL'auteur Salman Lone