2010-12-21 4 views
10

저는 원래 개발자였던 프로젝트에서 일하고 있습니다. 그러나 지난 2 년 동안 두 명의 다른 개발자가 프로젝트를 유지 보수하고 업그레이드했습니다. 하여 상단에 다음과 내부의 클래스 파일이 이제 있습니다C# 프로젝트에는 자동 생성 클래스가 있지만 자동 생성 클래스는 무엇입니까?

:

//------------------------------------------------------------------------------ 
// <auto-generated> 
//  This code was generated by a tool. 
//  Runtime Version:2.0.50727.1433 
// 
//  Changes to this file may cause incorrect behavior and will be lost if 
//  the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 

using System.Xml.Serialization; 

// 
// This source code was auto-generated by xsd, Version=2.0.50727.1432. 
// 

이러한 파일을 생성 한 수 어떤 생각? 그 중 하나의 문제는 정리하고 싶지만 변경 사항을 덮어 쓸 수 있다고합니다.

+4

이 주석은'xsd'에 의해 생성되었음을 알려줍니다. –

+4

"이 소스 코드는 xsd, 버전 = 2.0.50727.1432에 의해 자동 생성되었습니다." - 공짜일지도 ... – Reddog

+0

"이 코드는'도구 '에 의해 생성되었습니다." 이 프로젝트의 문서를보고 그들이 사용하고있는 도구를 확인해야한다고 생각합니다. –

답변

11

그것은 XML Schema Definition Tool입니다. 무엇을 정리하고 싶니?

Xsd.exe가 수행하는 작업 중 하나가 문제의 클래스 파일 생성 무엇인가 "클래스 XSD"이라고 주 :
가에서 런타임 클래스를 생성

XSD 클래스에를 XSD 스키마 파일. 생성 된 클래스는 System.Xml.Serialization.XmlSerializer와 함께 사용하여 스키마 뒤에 나오는 XML 코드를 읽고 쓸 수 있습니다.

exe ​​자체와의 호환성을 유지하면서 출력을 변경하려면 원본 XSD 파일을 변경 한 다음 Xsd.exe를 다시 실행할 수 있어야합니다.

1

XSD.exe가 생성했습니다. .NET SDK의 도구로 XSD 스키마를 사용하고 스키마와 일치하는 직렬화 가능한 클래스를 생성합니다.

프로젝트 속성에서 "사전 빌드"단계를 확인하십시오. xsd.exe에 대한 호출을 찾을 것입니다. 그렇지 않은 경우 .csproj 파일 (MSBuild)에 정의 된 지시문 일 수 있습니다. 런타임에 생성되는지 확실히 알고 있습니까? 또는 그들은 손으로 생성하고 체크인 했습니까?

올바르게 기억한다면 생성 된 클래스는 부분 클래스이므로 부분 클래스를 통해 기능을 추가 할 수 있지만 빌드시 생성되는 클래스는 수정할 수 없습니다.

클래스를 변경하려면 응용 프로그램이 파일을 생성하는 데 사용하는 XSD 파일을 수정해야합니다.