0

콘솔 앱에서 : 앱 1은앱 2 속성 설정은 공개로 설정 액세스 나는 몇 가지 지침을 따르 공유 설정 나는 C#에서 2 콘솔 응용 프로그램이

1 .- 내가 앱 2 '이름을 설정하는 속성을 설정

'from App1

App2.Properties.Settings.Default.Name = "John" 

2.- 나는 App1을 실행하고 예상대로 App2.Name 속성 설정을 인쇄합니다.

App2.Properties.Settings.Default.Name 

3. App2를 실행하여 속성이 App1에서 저장되는지 테스트합니다. 이 속성 값이 표시되지 않습니다 : 존

Properties.Settings.Default.Name 

질문 : 속성이 올바르게 기능을 저장하고 앱 1 범위에 표시되지만, 왜

  • 나는 속성 이름 선언 한 앱 2를 (실행하면) 하지 않습니다?

  • 내 접근 방식이 유효하지 않은 경우; 외부 콘솔 응용 프로그램에서 설정 등록 정보를 설정할 수 있습니까?

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

+0

각 앱에는 설정을로드하는 설정 파일 만 있습니다. 하나에 설정하는 것만으로는 설정하지 않습니다. 이것들을 둘러싼 몇 가지 방법이 있습니다. 설정 파일을 수동으로로드하여 변경하거나, 두 가지 응용 프로그램간에 데이터를 공유하는 여러 가지 다른 방법을 살펴볼 수 있습니다. –

답변

0

대신 2 콘솔 응용 프로그램을 참조, 당신은 또한 일부 XML 작업을 사용할 수 있습니다

using System.Linq; 
using System.Xml.Linq; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     var file = @"C:\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe.config"; 

     var doc = XDocument.Load(file); 

     var desc = doc.Root.Descendants("setting") 
      .Where(s => s.Attributes() 
       .Any(y => y.Value == "Name")).Descendants("value"); 

     desc.First().Value = "NewName"; 

     doc.Save(file); 
    } 
} 

}

을 설정 파일의 경로가 유선 어려운이 조각에서. 또한 App2에서 설정 파일의 위치를 ​​나타내는 다른 파일, 또는 문자열을 공유하는 다른 파일을 사용하여 레지스트리를 사용할 수도 있습니다.

+0

ConsoleApplication2.exe.config에서 저장 후 "값"태그 값이 비어 있습니다. .settings 파일의 내용에 따라 .exe.config 파일이 배포됩니다 .App1 내에서 조작 한 후에 App2를 컴파일하는 경우 kmxillo

+0

.exe.config 파일이 배포됩니다. App1을 실행 한 다음 .exe에서 직접 App2를 실행하면이 변경 사항이 재정의되지 않습니다. 목표는 무엇입니까? 다른 방법이있을 수 있습니다. – csteinmueller