2016-12-14 3 views
0

다른 사람들이 사용할 클래스 라이브러리 DLL을 만들고 있습니다. 나는 그 프로젝트가 무엇인지, 어떤 프로젝트 이름이 될지 전혀 알지 못한다. 모든 것이 끝났을 때 내가 할 일은 참조 할 프로젝트의 DLL을 넘겨주는 것이다.런타임시 DLL에서 값을 읽고 쓰는 최선의 방법

문제는 지금 내 DLL이 런타임에 프로젝트에서 키/값을 읽고로드 할 수있는 방법이 필요하다는 것입니다. 프로젝트는 키/값을 내 DLL로 전달하고 DLL은 이러한 키/값의 읽기 및 쓰기를 수행합니다. 내가 할 수있는 여러 가지 방법이 있다는 것을 발견했습니다 그 :

1) 설정에서 사용자 설정/appconfig가

2

) 읽고

그러나 두 가지가 있습니다에서 작성하는 새 XML 파일을 만듭니다 자동화되지 않았습니다. 내가 틀렸다면 나를 바로 잡습니다 :

1) 프로젝트 측에서 DLL에 필요한 키/값으로 수동으로 설정 파일을 만들어야합니다.

2) 프로젝트 측에서 DLL에 필요한 키/값이있는 XML 파일을 수동으로 만들어야합니다. 게다가 내 DLL은 그 XML이 그것을 참조하는 프로젝트에 의해 저장되고 있는지를 알아야합니다 (DLL에서 읽고 쓸 수 있도록)

여기 제가 도움이 필요한 곳입니다. 프로젝트를 수작업으로 수행하지 않고 런타임시 DLL에서 값을 읽고 쓸 수있는 방법이 있습니까? 그리고 그렇지 않다면 이것에 대해 가장 좋은 접근 방법은 무엇입니까? 설정 파일을 내 DLL을 참조 할 사람에게 넘겨 줍니까?

감사합니다.

+0

dll에서 값을 가져 오거나 설정하는 방법은 어떻습니까? – Pikoh

답변

1

음, 클라이언트 (DLL을 사용하는 프로젝트)는 무언가를해야만 dll을 사용할 수 있습니다. 발신자가 키 - 값 쌍을 직접 제공 할 수 있도록 구성 방법을 정의하거나 인터페이스를 변경하는 것이 좋습니다. 사용중인 응용 프로그램의 구성 파일에서 app-settings을 계속 사용할 수 있습니다. DLL은 System.Configuration.ConfigurationManager을 사용하여 응용 프로그램이 실행되는 위치에 대해 알 필요없이 해당 DLL에 액세스 할 수 있습니다. 다른 프로젝트가해야 할 유일한 일은 구성에서 필요한 설정을 제공하는 것입니다. 그러나 실제로 "읽는 가치"에 대해 자세히 설명 할 수는 없습니다.

+0

안녕 버거. 각 클라이언트는 "name", "id"등 웹의 DB에 저장된 키/값을 가진 자체 "로컬 설정 파일"을 가지며 프로젝트의 파일에 사본이로드됩니다. 사용자가 자신의 "이름"을 프로젝트 exe에서 변경하면 내 dll이이를 DB에 업로드하고 로컬 설정 파일을 업데이트 할 것입니다. 동시에 내 DLL은 다음과 같은 특정 확인을 위해이 로컬 설정 파일에서 읽을 수 있어야합니다. , DB에 업로드하기 전에 이전 이름과 같은 새 이름입니까? – Moo33

+0

그럴 경우 DLL이 쉽게 구성 파일의 관리자가 될 수 있습니다. 따라서 인터페이스에서 데이터를 변경하는 방법을 노출하게됩니다 현재 구성을 얻으려면 호출하는 응용 프로그램이 구성 요소를 쿼리합니다 (예 :'YourClass.SetUserName (string)'). 호출 될 때 메서드는 유효성 검사를 적용하고 로컬 구성 파일과 데이터베이스를 동기화합니다. ') –

+0

당신은 내 DLL에 대한 별도의 구성 파일? 내 dll.config 설정을 '복사 항상'시도했지만 내 출력 폴더에 나타나지 않는 것 같습니다. 또는 프로젝트의 설정 파일 참조를 내 dll에 전달 했습니까? – Moo33