우리는 정기적으로 작업을 시작해야하는 Windows 응용 프로그램에서 작업하고 있습니다. 우리는 이러한 작업을 BackgroundWorker에서 실행하는 패턴을 얻었으며 각 작업에 필요한 빠른 WinForm을 작성했습니다. 여기서 필요한 매개 변수를 양식에 전달하고 양식이 BackgroundWorker를 연결하고 함수 호출을 작성합니다. 양식에 출력이 표시됩니다 (진행 막대 이동, 텍스트가 업데이트로 채워짐 등)..NET 배경 작업자 생성
이제이 양식은 매우 쿠키 커터입니다. 양식 사본간에 실제로 다른 유일한 부분은 어느 메소드가 어떤 객체에서 호출되는지입니다. 그래서 우리가하고 싶은 것은 그것을 일반화하여 폼을 취하고 객체 (정적 호출의 경우 null), 함수 이름 및 매개 변수 배열을 전달하고이를 "이동"하도록 할 수 있습니다. 거기에서. 우리는 Reflection을 통해이를 수행 할 수있었습니다. 이 경우 우리가 반성하는 것에 대해 싫어하는 것은 강력한 타이핑이 없다는 것입니다. 메소드 호출의 철자 오류와 같은 것들은 런타임에 잡히고 시간을 컴파일하지 않습니다. 더 우아하고 견고한 제품을 만들 수있는 제품이 있습니까? 저는 사람들이 대표자들과 표정 나무들에 관해 이야기하는 것을 들었습니다. 그러나 나는 전자가 후자에 관해 어둠 속에서 조금이라도 적용된다고 확신하지 못한다.
내가 이해하는 것처럼, 나는 결국이 방법으로 호출되는 바람을 피울 수있는 각 메서드에 대한 새 대리자를 만들어야 할 것인가? – GWLlosa
@GWLIosa -이를 명확히하기 위해 대답을 약간 확장하려고했습니다. 각 메서드에 대해 명시적인 대리자 형식을 지정할 필요가 없습니다. – driis