무대, 일부 인터페이스 및 등록 섹션이 있습니다. 문제는 일부 매개 변수를 고정 변수로 정의하고 다른 변수를 변수로 정의해야한다는 것입니다. 컨테이너 클래스의 고정 값 및 기타 변수를 지정하십시오.
interface IDoSomething {
void DoWork();
}
interface IDoMath(){
void DoWork();
}
interface IBehaviorBusiness{
void Do();
}
class BehaviorBusiness {
...
public BehaviorBusiness(IDoSomething doSomething, IDoMatch doMatch, string connection){};
...
}
은이 선언에서 매개 변수 연결을 정의하고 컨테이너
IDosomething
및
IDoMatch
를 취할 윈저 컨테이너 수 있습니까?
container.Register(
Component.For<IDoSomething>()
...
}
container.Register(
Component.For<IDoMatch>()
...
);
이것은 구체적인 문제입니다.
container.Register(
Component.For<IBehaviorBusiness>()
.ImplementedBy<BehaviorBusiness>()
.DependsOn(Dependency.OnComponent<IDoSomething, [default]>(),
Dependency.OnComponent<IDoMatch, [default]>(),
Dependency.OnValue("connection", connectionString))
.LifeStyle.Transient
);
올바른 구문은 무엇입니까? 연결 문자열은 응용 프로그램 설정에서 오는 경우
@PatrickQuirk 대답은 맞지만 IConnectionString 공급자 나 직접 IConnectionProvider를 만들고 직접 매개 변수가 아닌 ctor로 제공하는 것이 더 나은 방법이라고 생각합니다. 이 방법으로 특정 클래스는 매번 연결을 생성/관리/처리 할 책임이 없습니다. 다른 구성 요소에서 연결을 제공 한 다음 풀링 한 다음 처리하는 것은 어떻습니까? 이렇게하면 SRP를 유지하는 것만으로는 안되며 원칙을 유지하는 것이 아니라 코드의 유지 보수성을 유지할 수 있습니다. 연결 문자열의 사용 예가 있습니까? –
프로젝트가 정말 작고 간단합니다. 당신 말이 맞아요. 마지막으로 내가 쿼리에 대한 더미 인터페이스에 대한 연결을 변경 공용 인터페이스 IDbContext를 업데이 트 { DataSet GetDataSet (string strmSql); DataTable GetDataTable (string strmSql); int ExecuteSql (string strmSql); } 일부는 정말 간단합니다 –
@OgnyanDimitrov 어디에서 IConnectionString 구현에 대한 모범 사례를 읽을 수 있습니까? IConnectionProvider? 다음 주에는 정말로 진지한 곳에서 일하고 있으며 적절한 주제에 대해 조금 읽습니다. Iam은 EF 나 NHibernate 사용을 고려하고 있습니다 –