나는 make a dynamic sitemap using MvcSiteMapProvider
입니다.DynamicNodeProviderBase의 MvcSiteMapProvider 및 StructureMap?
문제는 _jobService
이 null 인 것입니다. 무엇이 잘못 되었나요? 다른 위치에 IJobService
을 사용하고있어 올바르게 구성되어 있습니다. 예 : 나는 sitemap.xml
을 만드는 데 사용하고는 동적 노드에 올 때 그래서 다음 오류를 몇 노드를 생성로
private IJobService _jobService
{
get
{
return DependencyResolver.Current.GetService<IJobService>();
}
}
public override IEnumerable<DynamicNode> GetDynamicNodeCollection()
{
List<JobViewModel> activeJobs = _jobService.GetJobs().ToList();
// Create a node for each job
foreach (var job in activeJobs)
{
var node = new DynamicNode();
node.Title = job.Title;
node.RouteValues.Add("id", job.Id);
yield return node;
}
}
이 코드는 한 번만 실행 :
x.For<IJobService>().Use<JobService>();
여기 내 코드입니다. 오류 발생 후 페이지를 새로 고침하면 생성 된 sitemap.xml
이 표시됩니다 (동적 노드는 제외) /job/1
, /job/2
).
'GetDynamicNodeCollection'은 메뉴를 새로 고칠 때마다 또는 단 한번만 (즉, DI가 초기화되기 전에) 실행됩니까? – Mightymuke
찾아 주셔서 감사합니다. 끝에 게시글을 업데이트했습니다. 그것은 한 번만 실행됩니다. – KevinUK
DI 컨테이너가 초기화되기 전에 실행되는 이유는 무엇입니까? 그것은 분명히 이유가 'null'이 시점에서 설명하고, 여전히 다른 곳에서 유효합니다. – Mightymuke