私はエラーを取得する:WCF Ninject Ninject.ActivationException
Error activating IRule using binding from IRule to Crazy
A cyclical dependency was detected between the constructors of two services.
私はmultpipleルールを持っているが、私の "WCFサービス" であるルールは、インタフェースのiRule実装しています。例えば
public interface IRule
{
warior ExecuteRule(warrior _warrior);
}
をルールクレイジールックス
public class Crazy : IRule
{
private readonly IRule _rule;
public Crazy(IRule rule)
{
_rule = rule;
}
public wariors ExecuteRule(warriors _warriors)
{
using (var context = new warriors_officialEntities())
{
_warriors = context.warriors.SingleOrDefault(x => x.Name == _warriors.Name);
_warriors.cursed = (_warriors.Sleep > 70 && _warriors.Hunger > 70);
context.SaveChanges();
}
return _warriors;
}
}
私はそれをRuleFactoryと呼んでいます。 IRuleをすべてのルールクラスにバインドし、名前を付けます。
public class RuleFactory : NinjectModule
{
public override void Load()
{
Bind<IRule>().To<Crazy>().Named("crazy");
Bind<IRule>().To<Hungry>().Named("hunger");
Bind<IRule>().To<Munchies>().Named("munchies");
Bind<IRule>().To<Sleepy>().Named("sleepys");
}
}
私は私のサービスからすべてwariorsを取得)DoRules(と呼ばれる手法を解雇され、この方法は、ループトラフは、すべての戦士になり、彼らのためにすべてのルールを実行しようとします。
コードで例外が発生しますforeach (var rule in rules)
これを修正する方法はありますか?
これは機能します!私はそれを見ていない、ありがとう! – Ferryzijl