2010-01-12 2 views
0

개체를 short로 변환하는 코드가 있습니다.System.InvalidCastException : 지정된 캐스트가 유효하지 않습니다. 특정 컴퓨터에서만 가능

type.BusinessAreaID = (short)caType.credit_assessment_biz_areaReference.EntityKey.EntityKeyValues[0].Value; 

목적은 2

이 코드 단위 (테스트)의 값을 갖는 코드를 생성 현상의 PC에서 작동한다. 그러나 빌드 서버와 다른 dev PC에서 유효하지 않은 캐스트 예외가 발생합니다.

BusinessAreaID는 short 유형입니다.

또한 Dll도 GAC에 포함되어 있으므로 업데이트해야합니다.

누구든지 아이디어가 있습니다.

+0

예외를 throw하는 컴퓨터에서 개체의 값이 2가 아니라는 가정하에 작업하십시오. –

+0

단위 테스트에서 실행되므로 값은 항상 2이고, 또한 디버그되어 있는지 확인하십시오. –

답변

6

값을 다른 유형으로 해제 할 수 없습니다.

short x = 2; 
object y = (object)x; 
short z = (short)y; 

을하지만이되지 않습니다 : 예를 들어,이 작품

int x = 2; 
object y = (object)x; 
short z = (short)y; // InvalidCastException 

당신에게 caType...lues[0].Value에 저장된 값 유형 short이다 하시겠습니까?

+0

값 유형이 객체입니다. –

+1

그 속성의 유형입니다. 그러나 나의 예제에서 볼 수 있듯이'short' 타입의 값을'object' 타입의 변수에 저장할 수 있습니다. – dtb

관련 문제