Autofac.Extras.Quartzライブラリのために、AutofacでQuartzを使用しようとしています。しかし、私のコードは クラッシュすることは簡単ですが、それはクラッシュ:例外Autofac.Extras.Quartzサンプルコードがクラッシュする
using Autofac;
using Autofac.Extras.Quartz;
using Quartz;
using System;
namespace Test1_netCore
{
class Program
{
static void Main(string[] args)
{
var builder = new ContainerBuilder();
builder.RegisterModule(new QuartzAutofacFactoryModule());
var container = builder.Build();
IScheduler scheduler = container.Resolve<IScheduler>(); //crashes here
//
}
}
}
:
Autofac.Core.DependencyResolutionException: 'An error occurred during the activation of a particular registration.
See the inner exception for details. Registration: Activator = IScheduler (DelegateActivator),
Services = [Quartz.IScheduler],
Lifetime = Autofac.Core.Lifetime.RootScopeLifetime,
Sharing = Shared,
Ownership = OwnedByLifetimeScope'
Inner Exception
MissingMethodException: Method not found: "Quartz.IScheduler Quartz.ISchedulerFactory.GetScheduler()".
しかし、これは私がISchedulerFactory
を解決し、それ
using Autofac;
using Autofac.Extras.Quartz;
using Quartz;
using System;
namespace Test1_netCore
{
class Program
{
static void Main(string[] args)
{
var builder = new ContainerBuilder();
builder.RegisterModule(new QuartzAutofacFactoryModule());
var container = builder.Build();
//IScheduler scheduler = container.Resolve<IScheduler>();
ISchedulerFactory factory = container.Resolve<ISchedulerFactory>();
IScheduler scheduler = factory.GetScheduler().Result;
//
}
}
}
からコンテナを取得するときに、[OK]を実行します何が起こるのですか?私は何かを強く誤解していると思う。
質問を閉じるには答えを受け入れる必要があります。 – yorah