2013-04-11 1 views
0

서로 다른 구성을 가진 여러 프로젝트가 있는데,이 모든 구성은 단일 XML 파일에 지정되어야합니다. 이것은 app.config가 아니지만 일반적인 위치에 지정되어 있습니다.네이티브 Xml 처리 또는 (외부) lib

나의 현재 프로젝트 구조 :

  • 서브 프로젝트는 (같은 XML 파일에서 + 자신의 구성 일반적인 방법으로 핵심 XML 구성에 액세스 할 필요) (일부 XML과)

    • 핵심 프로젝트

      어떤 .NET XML 기술이 이에 가장 적합합니까? 내가 제안하는 게시물에서 아무것도 읽지 않은 사전

  • +0

    "네이티브 Xml 처리 또는 외부 라이브러리"와 같은 게시물 제목의 이름을 바꾸는 것이 좋습니다. C#은 태그가 이미 있고 현재 제목이 게시물 내용을 적절히 반영하지 않으므로 제목에 필요하지 않습니다. 순간에 –

    +0

    나는'Linq To Xml'을 사용할 것입니다 ... – I4V

    답변

    0

    문제에 대한 현재의 솔루션 : LINQ와

    내가 객체를 일치하는 XML 요소를 가지고있어 XML로. 이 XML 요소는 루트보다 한 레벨 아래에 있습니다. 이 방법으로 나는 루트 태그를 먼저 '필터링'하고 이것을 역 직렬화가있는 객체에 문자열로 변환합니다.예를

    <root> 
        <project1> 
         <somevalue>myvalue</somevalue> 
        </project1> 
        <project2/> 
    </root> 
    

    내가 해당 개체 (들) 문자열을 역 직렬화 다음 XML에 LINQ와 후손 문자열을 받고 있어요 프로젝트 1에서 모든 것을 원하는 경우에 대한

    .

    1

    감사합니다, 그 내장 된 닷넷 프레임 워크의 XML 기능 작업이 아닐 것입니다.

    저는 거의 매일 XML로 작업하고 있으며 아직까지 외부 라이브러리가 필요하지 않았습니다. 모두 프로젝트의 요구 사항에 따라 다르지만 동일한 기능을 사용하는 두 개의 프로젝트가 있으므로 두 프로젝트의 XML 처리를 추상화하고 격리 할 수 ​​있고 자신의 핵심 \ 하위 프로젝트의 xml 클래스 또는 별도의 dll 프로젝트의 (내 기본 설정). dll은 앞으로도 잘 서비스 할 수 있습니다.

    자신의 XML 기능을 작성하는 데 추가 된 보너스는 .Net XML 네임 스페이스의 내부 동작에 대해 더 자세한 지식을 수집한다는 것입니다. 지식을 낭비하지 않는 지식, 외부 라이브러리 (종종 .Net 클래스의 래퍼 및 외관).

    희망이 다소 도움이되고 행복한 코딩.

    1

    아마도 app.config 파일이이 용도에 가장 적합 할 것입니다. 사용자 고유의 구성 섹션을 만들 수 있으며 프로젝트의 단일 구성 파일은 모든 참조 된 어셈블리에서 액세스 할 수 있으므로 각 어셈블리에는 자체 섹션이있을 수 있습니다. user.config에서 사용자 특정 구성을 사용할 수도 있습니다 (Application Settings Architecture 참조).

    당신이 항상 ConfigurationManager.OpenMappedExeConfiguration

    다른 대안으로 다른 위치에서 app.config 파일을로드 할 수 있습니다 특정 위치에 있어야하기 때문에 당신은의 app.config를 사용할 수없는 경우 :

    • 사용 XmlSerializer을 사용하여 구성을 사용하여 XML을 POCO로 deserialize합니다.
    • masochistic 옵션 : 구성 파일을 직접 수동으로 구문 분석하려면 일반 XDocument 또는 XmlDocument을 사용합니다.