작은 응용 프로그램 (C#, .Net4, 콘솔 응용 프로그램)을 시작했고 규칙을 기반으로 파일을 집에서 옮기는 기본 아이디어였습니다.메서드에서 업데이트 되돌리기
이 앱은 성장하여 매우 유용합니다. 그래서 저의 임무는 더 재사용 가능한 클래스와 더 작은 프로젝트 (클래스 라이브러리)로 나누는 것입니다.
문자열 및 error_level ID를 허용하는 일반 '표시'기능이 있습니다. 이를 바탕으로 텍스트를 콘솔 창에 특정 색상으로 출력합니다. 하나의 큰 클래스에서 모두 괜찮 으면 좋겠지 만 메서드를 자신의 클래스 libabry로 옮기고 싶습니다. 그러나 처리하는 동안 업데이트를 내 UI (콘솔 창, 지금은)에보고하고 싶습니다. 내가 그것을 수업으로 옮길 때, 분명히, 나의 '쇼'방법 '에 대한 수업이 중단된다.
클래스 메서드에서 보낸 메시지를 내 UI로 다시 가져올 수있는 방법이 있습니까? 그것은 '열린 구성 파일', '12 개의 새 파일 처리', '성공'과 같은 메시지입니다.
그리고 UI가 메시지를 가져 와서 표시하며, 메서드는 작업을 완료합니다.
현재 콘솔 앱 프로젝트입니다. 필자의 계획은 작동 코드를 추출하고 테스트 용 콘솔 응용 프로그램을 유지 한 다음 'UI'를 멋진 WPF 데스크톱 응용 프로그램으로 변경하는 것입니다. (나는 WPF를 배우려고 노력 중이며, 나이가 들기 시작한 작은 프로젝트를 사용하기로 결정했으며 'skin it').
고마워, 나는 이것을 시도하고있다. 그러나 현재 나의 앱은 콘솔 앱이므로 내 메인 프로그램 클래스는 정적이다. Notify 메서드를 선언하면 내 프로그램에서 정적이어야합니다. public static void Notify (String message, Constants.ErrorLevel errorLevel) 입니다. 인터페이스는 다음과 같이 선언됩니다. void Notify (string message, Constants.ErrorLevel errorLevel); 그래서 하나는 정적이고 다른 하나는 그렇지 않기 때문에 UI에 Notify가 Implimented되지 않았다는 오류가 표시됩니다. 어떻게해야합니까? – Craig
상황을 처리하기 위해 인터페이스 대신 대리자를 사용하도록 답변을 업데이트했습니다. –
고마워요 - 비 정적 클래스로 이동하면서 WPF를 얻었을 때 인터페이스 기반 솔루션을 사용하는 것이 좋을지 또는 이벤트 처리기가 정적 및 비 정적 기반 프로젝트 모두에 적합한 솔루션이 될까요? ? – Craig