목표는 앱간에 구성 설정을 공유하는 것입니다. 예를 들어 WinForm 앱을 사용하여 설정을 저장하고 저장할 수 있고 콘솔 앱이 해당 설정을 읽고 예약 된 작업으로 실행할 수있게하려고합니다. 내가 시도한 접근 방식은 Winform 응용 프로그램과 콘솔 응용 프로그램에서 모두 참조되는 SharedSettings 클래스를 만드는 것입니다. 이 클래스에는 공용 문자열 속성이 있습니다.클래스를 직렬화 할 때 XMLSerializer가 잘못된 XML을 작성합니다 (간혹)
public class SharedSettings
{
public string URL { get; set; }
public string DestUser { get; set; }
public string RelScript { get; set; }
}
나는이 SharedSettings 클래스
SharedSettings settings = new SharedSettings();
settings.RelScript = this.txtRelScript.Text;
settings.URL = this.txtURL.Text;
settings.DestUser = this.txtDestUser.Text;
XmlSerializer dehydrator = new XmlSerializer(settings.GetType());
System.IO.FileStream fs = new FileStream(this.configFilePath, FileMode.OpenOrCreate);
dehydrator.Serialize(fs, settings);
의 인스턴스를 직렬화하려면 다음을 사용하고이 그것을 역 직렬화하고, A 형의
SharedSettings settings = new SharedSettings();
XmlSerializer dehydrator = new XmlSerializer(settings.GetType());
System.IO.FileStream fs = new FileStream(this.configFile, FileMode.Open);
settings = (SharedSettings)dehydrator.Deserialize(fs);
this.txtRelScript.Text = settings.RelScript;
this.txtURL.Text = settings.URL;
this.DestUser.Text = settings.DestUser;
마다 한 번에 필드를 채 웁니다 5 번 중 5 번은 유효한 XML로 작성된 XML 파일을 실행합니다. 여기에 예제가 있습니다
<?xml version="1.0"?>
<SharedSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ProjectName>test2</ProjectName>
<URL />
<DestUser>test3</DestUser>
<RelScript>D:\Events.dll</ReleaseScript>
</SharedSettings>ttings>
마지막 줄을 확인하십시오. ttings> 수업을 연재 할 때 내가 뭘 잘못하고 있니?
또한 OP는 파일 스트림이 플러시되고 닫히도록하기 위해'fs' 문을'using' 문에 넣어야합니다. – dbc