2013-09-05 3 views
1

방문자 그룹을 만들었고 클래스를 삽입하려고합니다. 클래스가 모두 유선으로되어 있고 사이트에서 잘 실행되고 있습니다. 그것을 블록에 주사하고있다. 나는 CMS에 방문자 그룹 탭을 열 때구조체 예외 코드 : 202 EPiServer 7 내 Visitor Group 탭을 여는 경우

, 나는 다음과 같은 예외를 얻을 :

StructureMap 예외 번호 : (202) 아니오 기본 인스턴스 PluginFamily EPiServer.ServiceLocation.ServiceAccessor`1 [[Bennetts에 대해 정의 .Site.Community.Membership.IMemberFactory, Bennetts.Site.Community, 버전 = 1.0.0.0, 문화 = 중립, PublicKeyToken = null]], EPiServer.Framework, 버전 = 7.0.859.16, 문화 = 중립, PublicKeyToken = 8fe83dea738b45b7

사이트의 DependencyResolverInitialization 모듈 1,363,210

코드는 다음과 같습니다

public void ConfigureContainer(ServiceConfigurationContext context) 
{ 
    ....... 

    context.Container.Configure(x => 
    { 
     x.For<IMemberFactory>() 
      .Use<MemberFactory>() 
      .Ctor<string>("serviceHostname") 
      .Is(i => i.GetInstance<IConfigurationSettings>().GetExternalCmsServiceHostname()) 
      .Ctor<int>("ServicePort") 
      .Is(i => i.GetInstance<IConfigurationSettings>().GetExternalCmsServicePort()); 
    }); 
} 

그리고 그 기준은 다음과 같습니다

나는 문제는 모듈 영역은 자신의 StructureMap 컨테이너를 가지고있다 생각한다. 이 경우인가요? 그렇다면 맵핑이 수행되는지 확인하는 가장 좋은 방법은 무엇입니까?

답변

1

어쩌면 대답이 너무 늦었습니다. 주입 된 속성을 사용하면 조금 더 까다 롭습니다. EPiServer에 인터페이스 구현 방법을 알려줘야합니다. 이는 ServiceConfiguration 속성을 사용하여 수행 할 수 있습니다.

[ServiceConfiguration(Lifecycle = ServiceInstanceScope.Unique, ServiceType = typeof(IMemberFactory))] 
public class DefaultMemberFactory : IMemberFactory 
{ 
}