Windows Forms 응용 프로그램에 1 개의 솔루션으로 3 개의 프로젝트가 포함되어 있습니다.호출자 클래스의 메서드 호출 및 순환 종속성 방지
Hall.Client
< - 윈폼
Hall.Admin
< - 윈폼
Hall.Processor
< - 클래스 라이브러리 참조로
Hall.Client
및 Hall.Admin
필요 Hall.Processor
. Hall.Processor
은 순환 종속성 때문에 Hall.Client
및 Hall.Admin
에 대한 참조를 추가 할 수 없습니다. 내가 필요한 건 내가이
public class Roof : System.Windows.Form
{
public void SetProcessName(string name)
{
this.txtProcessName.Text = name;
}
}
지붕라는 클래스가 Hall.Admin
에서 내가 캐노피
public class Canopy : System.Windows.Form
{
public void SetProcessName(string name)
{
this.txtProcessName.Text = name;
}
}
라는 클래스가 Hall.Client
에서 Hall.Processor
각 발신자 클래스의 인스턴스를 얻을 수 있습니다 Builder 클래스 내의 Hall.Processor
의 메소드
public class Builder
{
Form form;
public Builder(Form form)
{
//Here the main problem.
//if the caller class is Hall.Admin.Roof then this.form should be Hall.Admin.Roof
//if the caller class is Hall.Client.Canopy then this.form should be Hall.Client.Canopy
}
public void SetProcessName()
{
//How to call method in caller class directly from this class
//if(Admin.Roof) then form.SetProcessName("something about admin");
//if(Client.Canopy) then form.SetProcessName("something about client");
}
}
내 문제를 해결하는 방법에 대한 제안이 필요합니다. 내 문제와 관련된 디자인 패턴이 있습니까?
나는 아직도 당신의 설명을 혼동스럽게 생각합니다. 웹에는 많은 예제가 있으며 그 중 아무 것도 내 필요와 일치하지 않습니다. – derodevil
@derodevil, 정확히 무엇이 혼동됩니까? [C#의 인터페이스] (http://stackoverflow.com/a/22549046/1768303)에 익숙합니까? – Noseratio
예. 내가 생각하는 것은 DI가 아닌 공장 패턴이다. 그게 내가 혼란스러워하는거야. – derodevil