확인. List<Product>
을 가져 와서 일반 List<object>
을 사용하는 메서드로 전달하고 리플렉션을 통해 List<dynamic>
을 만듭니다. 이 방법은 다른 객체 (예 : Item, Customer, Package 등)의 목록을 처리 할 수 있어야합니다.동적 목록에 강력한 형식의 개체 목록
그러면 JSON을 통해 전선을 통해 전송할 수있는 일반적인 동적 목록을 갖게 될 것입니다.
어떻게해야합니까?
확인. List<Product>
을 가져 와서 일반 List<object>
을 사용하는 메서드로 전달하고 리플렉션을 통해 List<dynamic>
을 만듭니다. 이 방법은 다른 객체 (예 : Item, Customer, Package 등)의 목록을 처리 할 수 있어야합니다.동적 목록에 강력한 형식의 개체 목록
그러면 JSON을 통해 전선을 통해 전송할 수있는 일반적인 동적 목록을 갖게 될 것입니다.
어떻게해야합니까?
가장 간단한 방법은 LINQ를 사용하여 새 목록을 작성하는 것입니다.
List<object> foo = products.ToList<object>();
심지어 단지를 : .NET 4를 사용하면 당신이 사용할 수 있도록, 당신이, 당신에게 공분산 사용할 수있어 점을 감안
List<object> foo = new List<object>(products);
당신은 기존 전달할 수 없습니다 List<Product>
이 이 아니기 때문에을 나열하십시오. a List<object>
이 아닙니다.
물론 IEnumerable<object>
을 수락하도록 메서드를 변경할 수 있다면 공분산으로 인해 정상적으로 작동합니다. 그게 가능하다면 을 매개 변수 수집에서으로 읽어보십시오.
리플렉션을 사용하여 List<dynamic>
을 생성해야하는 이유가 명확하지 않으니까요. 실제로 실제로하는 방법은 무엇입니까? 왜 그냥 사용할 수 없습니다
List<dynamic> foo = new List<dynamic>(products);
을 그리고 아스 커는 .NET 4.5을 사용하는 경우, 다른 ** 공변 ** 인터페이스있다, ['IReadOnlyList'] (http://msdn.microsoft.com/en -l /usr/hh192385.aspx)'List '과'T []'와 같은 것들이 그것을 구현하고, 공분산 때문에'IReadOnlyList '도'IReadOnlyList