2017-11-30 4 views
1

일반적으로 사용되는 dll을 개발하고 있습니다 (예 : 너겟). 간단한 설명 : 내 DLL은 특정 서비스와의 메시지 교환을 단순화합니다. 요청을 보내고 응답을 검색 할 수 있습니다. 서비스는 비동기식이며 요청을 수락 한 후 1 시간 또는 1 일 이내에 응답을 생성 할 수 있으므로 요청을 한 후에는 응답을 확인하기 위해 dll에서 몇 분마다 서비스를 호출합니다. 문제는 dll을 사용하는 응용 프로그램을 다시 시작하여 메모리에 요청 큐를 저장하는 것이 좋은 옵션이 아니라는 것입니다. 요청에 대한 정보를 잃고 싶지는 않습니다. 나도 내 DLL이 어디에서 사용될 것인지 알 수 없으므로이 파일을 파일에 직렬화하지 않습니다. PC 응용 프로그램, mvc 일 수 있습니다. 필자가 주로 사용하는 옵션은 파일로 직렬화하는 것이지만, web/app.config를 통해 직렬화 된 파일을 저장할 주소를 설정하거나 사용자가 그것에 대해 생각하도록하는 옵션을 제공합니다. 그러나 요청 대기열을 저장하는 방법에 대한 더 나은 해결책이있을 수 있습니까?dll 어셈블리의 데이터를 저장하는 더 나은 솔루션

+0

당신이 %의 APPDATA % 폴더를 사용할 수 있을까요? – Chrille

+0

@Chrille 그래서 간단합니까? 좋은 생각이야 –

답변

1

이 유형의 구성 또는 데이터 파일을 %appdata% folder의 하위 폴더에 넣을 수 있습니다. 이 폴더에있는 파일에 대한 쓰기 권한이 있으며 문서는 광범위합니다. 더 읽기 here.

var appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 

또는 프로그램 데이터를 사용합니다 :

C#에서

가 쉽게 사용이 폴더를 얻을 수 있습니다

var programdata = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); 
+0

고마워, 멋진 기사 야. 나는 잠재적으로 IIS 애플 리케이션 (그러므로 appdata realiable되지 않습니다)에서 사용할 수있는 dll에 appdata를 사용하여 생각하지 않지만 programdata 폴더가 좋은 옵션 것 같다. –

+0

예, 프로그램 데이터도 작동해야합니다. – Chrille