아래 함수는 특정 유형의 배열 일 수있는 객체를 허용합니다. 이 경우 배열에 적어도 하나의 멤버가 있다고 가정하고 유형을 obj [0] .GetType()으로 결정할 수 있다고 가정합니다. 이러한 배열을 적절한 형식의 일반 목록 <T>으로 변환하고 싶습니다. 그러나 아래 코드는 < 개체 >으로 변환하는 경우에만 성공합니다. 어떻게 할 수 있습니까? GetSerializedObject()는 IDataContractSurrogate 인터페이스에 속하는 기능을 구현하므로 I는 I 바와 같이 그 특성을 변경할 수 있다고 생각하지 않는모든 유형의 배열을 List로 변환합니다. <T> (C#)
public object GetDeserializedObject(object obj, Type targetType) { if (obj is Array) { List<object> obj2 = new List<object>(); for (int i = 0; i < ((Array)obj).Length; i++) { obj2.Add(((object[])obj)[i]); } obj = obj2; } return obj; }
참고.
"..."의 자리에 속한 것은 무엇입니까? –
@nw : Jon이 정의한'ConvertArray' 메쏘드를 두는 클래스입니다. 즉,'ConvertArray' 메쏘드를'ArrayConverter'라는 클래스에 넣으면'...'을'ArrayConverter'로 대체합니다. – jason
@Jon :'TargetType'은'Type'이어야합니다. – jason