나는 오류 얻을 :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 서비스"규칙이 인터페이스 아이 룰 구현입니다 : 규칙 미친 외모 예를 들어
public interface IRule
{
warior ExecuteRule(warrior _warrior);
}
을 like :
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라고 부르는 ninject 모듈을 사용하고 있습니다. 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 화재()이다,이 방법은 반복됩니다 트로프 모든 전사와 그들을 위해 모든 규칙을 실행하려고합니다.IKernel _rules = new StandardKernel(new RuleFactory());
public void DoRule(List<warriors> tmgs)
{
IEnumerable<IRule> rules = _rules.GetAll<IRule>();
using (var context = new warriors_officialEntities())
{
foreach (warriors tmg in tmgs)
{
foreach (var rule in rules)
{
rule.ExecuteRule(tmg);
}
tmg.LastAccess = DateTime.Now;
context.Entry(tmg).State = EntityState.Modified;
}
context.SaveChanges();
}
}
코드에서 예외가 발생합니다. foreach (var rule in rules)
어떻게 해결할 수 있습니까?
그게 효과가 있습니다! 나는 그것을 보지 못했다. 고마워! – Ferryzijl