DDD:"작업 단원 실례"를 관리 하 는 두 가지 모드 의 사용 방법
4815 단어 DDD작업 단위 인 스 턴 스
흔히 볼 수 있 는 사례 장면 에서 도표 의 대상 도 는 다음 과 같다.
4.567916.문 제 는 하나의 사례 를 집행 하 는 과정 에서 같은 한계 문맥 안의 모든 창고 인 스 턴 스 가 같은 작업 단원 인 스 턴 스 를 공유 할 수 있 도록 어떻게 보장 합 니까?해결 방안 창고 저장 소 는 주입 모드+IOC 관리 작업 단원 의 생명주기(PerRequest 또는 기타)를 사용 합 니 다.
코드 예시
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autofac;
namespace AutoFacStudy
{
class Program
{
static void Main(string[] args)
{
var buider = new ContainerBuilder();
buider.RegisterType< >();
buider.RegisterType< A>();
buider.RegisterType< B>();
buider.RegisterType< >().InstancePerLifetimeScope();
var container = buider.Build();
dynamic = container.Resolve< >();
//
Console.WriteLine( . A. .GetHashCode());
Console.WriteLine( . B. .GetHashCode());
}
}
public class
{
private readonly A _ A;
private readonly B _ B;
public ( A A, B B)
{
_ A = A;
_ B = B;
}
public A A
{
get { return _ A; }
}
public B B
{
get { return _ B; }
}
}
public class { }
public class A
{
private readonly _ ;
public A( )
{
_ = ;
}
public
{
get { return _ ; }
}
}
public class B
{
private readonly _ ;
public B( )
{
_ = ;
}
public
{
get { return _ ; }
}
}
}
해결 방안 2 창 고 는 서비스 포 지 셔 닝 모드+서비스 포 지 셔 닝 머 신 또는 간단 한 공장 관리 작업 단원 의 생명주기(PerRequest 또는 기타)를 사용한다.코드 예시
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autofac;
namespace AutoFacStudy
{
class Program
{
public static IContainer ;
static void Main(string[] args)
{
var buider = new ContainerBuilder();
buider.RegisterType< >();
buider.RegisterType< A>();
buider.RegisterType< B>();
buider.RegisterType< >().InstancePerLifetimeScope();
= buider.Build();
dynamic = .Resolve< >();
//
Console.WriteLine( . A. .GetHashCode());
Console.WriteLine( . B. .GetHashCode());
}
}
public class
{
private readonly A _ A;
private readonly B _ B;
public ( A A, B B)
{
_ A = A;
_ B = B;
}
public A A
{
get { return _ A; }
}
public B B
{
get { return _ B; }
}
}
public class { }
public class A
{
private readonly _ ;
public A()
{
_ = Program. .Resolve< >();
}
public
{
get { return _ ; }
}
}
public class B
{
private readonly _ ;
public B()
{
_ = Program. .Resolve< >();
}
public
{
get { return _ ; }
}
}
}
이 예 시 를 통 해 알 수 있 듯 이 서비스 포 지 셔 닝 기와 의존 주입 은 함께 혼합 하여 사용 할 수 있다.이 예 는 제 가 간단 하기 위해 서 서비스 포 지 셔 닝 기와 IOC 용 기 는 같은 인 스 턴 스 입 니 다.일부 시스템 은 서비스 포 지 셔 닝 기기 의 실현 을 간단 한 공장 모델 로 바 꾸 는데 그들 은 본질 적 으로 같다(서비스 포 지 셔 닝 기 는 만능 공장).
코드 예시
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
블랙잭 해보면 놀러 가서 지는 사람이 많은데 납득블랙잭 게임을 시뮬레이션하는 WebAPP를 만들었습니다. 그래서 생각한 것을 정리합니다. 블랙잭 규칙 플레이어와 딜러는 각각 여러 장의 카드를 당기고 21을 초과하지 않는 범위에서 카드 값의 합계가 21에 가까운 쪽...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.