저는 캐스트를 입력해야하는 다른 네임 스페이스에 두 개의 클래스가 있습니다.타입 캐스트 클래스
한 클래스의 캐스트 객체를 다른 클래스에 입력하는 방법. 두 클래스 모두 동일한 메서드와 속성을가집니다.
반영이 적용 되나요? 클래스의 유형 변환 예제는 도움이 될 것입니다.
저는 캐스트를 입력해야하는 다른 네임 스페이스에 두 개의 클래스가 있습니다.타입 캐스트 클래스
한 클래스의 캐스트 객체를 다른 클래스에 입력하는 방법. 두 클래스 모두 동일한 메서드와 속성을가집니다.
반영이 적용 되나요? 클래스의 유형 변환 예제는 도움이 될 것입니다.
당신은 한 유형에서 다른 유형으로 직접 캐스팅 할 수 없습니다, 당신은 할 수 있습니다 :
어떤 방식 으로든 관련이 있지 않으면 캐스팅 할 수 없습니다 (예 : 다른 하나의베이스).
당신은 하나가 매퍼를 사용하여 것, 여러 가지 방법으로 다른 하나를 매핑 할 수는 AutoMapper을 기반으로 다른 하나에서 잘 알려진 하나
https://github.com/AutoMapper/AutoMapper
이 줘야지도입니다 반원 이름은 클래스 어떠한 방식으로 관련되지 않은 경우
다른 용액 (일부 형태 매핑) dynamic
이용 될 수있다. 이 너무 위험하지만, 가능한 옵션 중 하나처럼 간주 할 수있는 경우 이벤트 : 당신이 안전한 정적 유형 세계를두고 동적 강력한 엉망으로 뛰어
namepsace A {
public class NotRelatedA() {
public void Run() {}
}
}
namepsace B {
public class NotRelatedB() {
public void Run() {}
}
}
dynamic dyn = new A.NotRelatedA();
dyn.Run(); //Run A
dyn = new B.NotRelatedB();
dyn.Run(); //Run B, without changing and mapping anything
반복이 때문에, 가지 위험 당신이 그것을 사용한다면, 원인과 함께 사용하십시오.
해당 클래스에는 몇 개의 속성이 있습니까? 그들은 "손으로 쓰는"수업입니까?
어쩌면 두 개의 클래스가 필요하지 않을 수 있으며 그 중 하나를 삭제하고 다른 하나를 사용할 수 있습니까?
아마도 하나의 클래스가 다른 클래스에서 파생 될 수 있습니까? 그런 다음 기본 클래스에 공통 속성 및 메서드 만 작성하면됩니다.
, 당신은 몇 가지 옵션이 있습니다
public static explicit operator ClassOne(ClassTwo ct)
을 쓸 수 있습니다. 이를 통해 표준 캐스트 구문 (예 : (ClassOne)variable
) 또는
어떤 방식 으로든 관련이 없으므로 전송할 수 없습니다. 이것은 [AutoMapper] (https://github.com/AutoMapper/AutoMapper)와 같은 작업입니다. –
나는 당신이 * 캐스팅 *이 아닌 * 맵핑을 찾고 있다고 생각한다. – sloth
여기에 예제가 많이 있습니다. http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/808ad927-385f-49c9-aace-256eefe659d7 –