Linq 표현식을 직렬화/직렬화 할 수 있도록 라이브러리/도구를 찾고 있습니다.BinarySerializer를 사용하여 기본 Linq 표현식 삭제/직렬화
저기 도서관이 있나요? .Net에서 기본적으로 지원됩니다. 시동기 물건 코드는 어떻게 얻을 수 있습니까?
Linq 표현식을 직렬화/직렬화 할 수 있도록 라이브러리/도구를 찾고 있습니다.BinarySerializer를 사용하여 기본 Linq 표현식 삭제/직렬화
저기 도서관이 있나요? .Net에서 기본적으로 지원됩니다. 시동기 물건 코드는 어떻게 얻을 수 있습니까?
Linq 표현식의 결과 또는 시퀀스에서 사용할 수있는 표현식을 직렬화하려는 것이 확실하지 않습니다.
IEnumerable<MyCollectionItem> MyCollection = ...;
IEnumerable<MyItem> result = MyCollection.LinqQuery(...);
결과를 직렬화 하시겠습니까? 또는 LinqQuery를 직렬화 싶어, 그래서 당신은 다른 컬렉션 나중에 사용할 수 있습니다
IEnumerable<MyItem> otherResult = OtherCollection.DeserializedLinqQuery()
첫 번째는 간단합니다 : List<MyItem>
에 결과를 변환/직렬화 목록을 deserizalize.
두 번째는, 어쨌든 LinqQuery이를 IEnumerable (가능한 복합) 확장 기능보다 더 아무것도 없다, 정말 수 없습니다
static class MyCollectionItemExtensions
{
public static IEnumerable<MyItem> MyLinqQuery(this IEnumerable<MyCollectionItem>(...)
{
...
}
}
MyLinqQuery 당신이 그것을 적용한 후에 만 기능, 시퀀스를 열거 할 수있는 객체를 얻습니다. 함수를 직렬화하는 것은 쉽지 않습니다.
그러나 MyLinqQuery가 IQueryable 인 경우 쿼리는 MyCollection의 요소에 적용되는 함수가 아니며 MyCollection의 요소에 적용된식이 있습니다. IQueryable에 표현식을 요청하고 그 표현식을 직렬화 할 수 있습니다.
문서에서이 작업을 수행하는 방법에 대한 답변은 StackOverflow: Serializing and deserialize expression tress
입니다.