나는 큰 물건을 가지고있다 :
class BigObject{
public int Id {get;set;}
public string FieldA {get;set;}
// ...
public string FieldZ {get;set;}
}
특수한 DTO와 유사한 객체 :
class SmallObject{
public int Id {get;set;}
public EnumType Type {get;set;}
public string FieldC {get;set;}
public string FieldN {get;set;}
}
개인적으로 BigObject를 SmallObject로 명시 적으로 캐스팅하는 개념을 발견했습니다. 단방향의 데이터 손실 작업이라는 것을 알고 있습니다. 매우 직관적이고 읽기 쉽습니다.
var small = (SmallObject) bigOne;
passSmallObjectToSomeone(small);
명시 적 연산자를 사용하여 구현됩니다.
public static explicit operator SmallObject(BigObject big){
return new SmallObject{
Id = big.Id,
FieldC = big.FieldC,
FieldN = big.FieldN,
EnumType = MyEnum.BigObjectSpecific
};
}
이제 메소드를 사용하여 SmallObjectFactory
클래스를 만들 수 있습니다. FromBigObject(BigObject big)
동일한 작업을 수행하고 종속성 주입에 추가하고 필요할 때 호출합니다 ...하지만 나에게는 훨씬 복잡하고 불필요합니다.
추신 : 나는 이것이 관련이 있는지 확실하지 않지만 ,로 설정하여 다른 설정 OtherBigObject
으로 변환 할 수있을 것 입니다.SmallObject
EnumType
.ToSmallObject()
method (또는 GetSmallObject()
). 이유의 순간적인 소멸-나는 내 생각에 뭔가 문제가 있다는 것을 알고 있었다. 그래서 나는 너희에게 물었다. :)
ToSmallObject
방법 에 대한 아이디어와 결합 될 때 .