C# 프로젝트간 데이터 교환

less than 1 minute read

인터넷에 검색 해 보면…

포트를 열고 통신을 시킨다던가

파일로 공유한다던가… 다양한 방법이 있는 것 같다.

내 경우에는 실시간으로 이뤄져야 하고 용량이 커서 파일 공유는 문제가 있었다.

그럼 메모리를 통한 공유도 문제가 되고..

문제상황:

갑 프로젝트에서 컨트롤하는 을1, 을2, 을3 프로젝트가 있다.

갑프로젝트에서 을1,2,3프로젝트의 함수를 호출한 후 나온 데이터를 처리한 후 갑 프로젝트로 보내줘야한다. 갑 프로젝트는 데이터를 받으면 바로 처리를 해서 화면에 띄운다.

리턴형태로 보내줄수도 있지만…. 리턴형태로 하나하나 해주다 보니 너무 복잡해진다. 그래서 데이터를 편하게 주고받을 방법을 찾아보려고… 생각한게 새 프로젝트..

요구사항:

데이터를 자유롭게 공유할 수 있어야 함.

빠른 공유가 가능해야함.

데이터가 변경될 때 마다 이벤트를 줄 수 있어야함

public static class ClsData//공유용 클래스… { public static DataTable dtbl공유용; public static int a; }

클래스라이브러리 프로젝트를 대강 이런식으로 만들어서 양쪽에서 사용했다. 스태틱으로 선언하면 양쪽 프로젝트에서 접근해도 같은 값을 유지한다. 새로운 객체가 생성이 안되니까..

이벤트를 전달할 수 없다는게 아쉽긴 했지만….

이벤트를 전달하지 못한다는 점에서 완벽한 해결책은 아니다.

포트통신으로 하면 왠지 어려울것같고.. 불편할 것 같고….

……..뭔가 꼬이긴 했는데 … 다시 만들기도 그렇고.. 다시만들어도 똑같은 꼴이 날 것 같고… 어떻게든 고쳐서 쓰긴 해야겠는데…

일단은 이정도로 만족해야할 듯 하다.

이벤트를 전달할 방법만 찾으면 될듯 싶다.