프로젝트에서 작업 중이므로 CSV 파일에 개체를 serialize/저장합니다. (예, 이것이 최선의 방법은 아니지만 반드시 필요함을 알고 있습니다.)객체 필드에 속성을 동적으로 적용 할 수 있습니까?
솔루션을 깨끗하게 유지하기 위해 솔루션 내부에 여러 프로젝트가 있습니다. 그 중 하나는 라이브러리 프로젝트입니다. 저장소/직렬화 방법을 포함합니다. 이 프로젝트에는 CSV 작업을 수행하는 데 사용하려는 제 3 자 라이브러리 인 CSVhelper에 대한 참조가 있습니다. 프로젝트 프로젝트 B로 진행되는
foo myobject = new foo(x,y,z);
B.WriteToCsv(myobject);
에서
(내 lib 디렉토리를 참조 csvhelper는)
public static WriteToCsv(foo myobject); // csvhelper would do the work
그러나, Csvhelper는 작동 할 수 있습니다 전에 내 foo는 개체에 설정된 특정 속성을 필요로 그 위에.
내가, 내 foo는 개체 클래스 정의 파일에 이러한 특성을 적용하지 않도록 노력하고 대신 내가 프로젝트 B. 내부에 동적으로 이러한 특성을 적용하는 것을 선호
내 질문은, 동적으로, 나중에 속성을 적용하는 것이 가능하다 ? 전체 요점은 가능한 한 내 프로젝트를 깨끗하게 유지하는 것입니다.하지만이 작업을 더욱 복잡하게 만들 것이라고 생각합니다. 이것은 나쁜 생각입니까, 아니면이 문제에 대한 일반적인 해결책이 있습니까? 예와 요청에
업데이트 :
내 foo는 개체 정의 : 유지하기 위해
public class Foo
{
[CsvColumn(Name = "a", FieldIndex = 1)]
public string a;
[CsvColumn(Name = "b", FieldIndex = 2)]
public string b;
[CsvColumn(Name = "c", FieldIndex = 3)]
public int c;
}
:
public class Foo
{
public string a;
public string b;
public int c;
}
CsvHelper이 같은 필드의 특성을 필요로 내 코드를 깨끗하게 정리하고, 여기에이 속성들을 추가하는 것을 피하고 싶다. 왜냐하면 모든 코드를 storin과 연관 짓기를 원하기 때문이다. g/내 별도의 라이브러리에서 직렬화. (프로젝트 B)
"특성"이란 속성 또는 .NET 의미의 특성을 의미합니다. '[Serializable]'? 짧지 만 완전한 예제를 제공하면 도움이 될 것입니다. –
@JonSkeet 업데이트되었습니다. 나는 .NET 의미에서 속성을 의미합니다. [XYZ] –