Je tente de migrer mon code d'un projet Webjobs fonctionnant sous .NET Framework 4.6.1 vers un nouveau projet de console .NET Core 2.0. Je reçois des erreurs quelques erreurs ici:Utilisation de Ninject dans l'application .NET Core Console
class Program
{
// Here I'm getting IKernel is obsolete. Use IKernelConfiguration and IReadOnlyKernel message.
// Also a message that reads: StandardKerynel is obsolete. Use StandardKernelConfiguration and StandardReadOnlyKernel
static readonly IKernel Kernel = new StandardKernel();
static JobHostConfiguration config;
static void Main(string[] args)
{
Environment.SetEnvironmentVariable("AzureWebJobsDashboard", "connection");
Environment.SetEnvironmentVariable("AzureWebJobsStorage", "storage connection");
BootStrapIoc();
config = new JobHostConfiguration();
if (config.IsDevelopment)
{
config.UseDevelopmentSettings();
}
var host = new JobHost(config);
host.RunAndBlock();
}
private static void BootStrapIoc()
{
// Also getting an error here that reads: Argument 1: Cannot convert System.Reflection.Assembly to System.Collections.Generic.IEnumerable<Ninject.Modules.NinjectModule>
Kernel.Load(Assembly.GetExecutingAssembly());
config = new JobHostConfiguration
{
JobActivator = new BrmJobActivator(Kernel)
};
}
}
Je suis aussi obtenir des erreurs dans mon code BrmJobActivator:
public class BrmJobActivator : IJobActivator
{
private readonly IKernel _container;
public BrmJobActivator(IKernel container)
{
_container = container;
}
public T CreateInstance<T>()
{
return _container.Get<T>();
}
}
MISE À JOUR: Voici le message d'avertissement en paquets NuGet dans mon projet après l'installation package ninject 3.2.2:
Nous vous remercions de votre réponse. J'ai installé la version 3.2.2 et cela semble fonctionner correctement. Cependant, je vois un avertissement sous les paquets NuGet. J'ai pris une capture d'écran et mis à jour le post original avec. Le message avertit que ce paquet peut ne pas être entièrement compatible avec mon projet. – Sam
Juste pour clarifier davantage: le projet construit sans erreurs et je ne fais pas les erreurs que je recevais avant. – Sam
Vous pouvez simplement l'ignorer ou modifier votre code pour utiliser la dernière version de NInject. Vous devez implémenter un Ninject.Modules.NinjectModule. Le lien ci-dessous est pour votre référence. https://github.com/ninject/Ninject/wiki/Modules-and-the-Kernel – Amor