2011-04-25 4 views
1

Func 매개 변수로 웹 메소드를 노출 할 수 있는지 궁금합니다. 그것은 매개 변수가 없기 때문에Func 매개 변수로 웹 메소드를 노출하는 방법은 무엇입니까?

System.Func [GwModel.Entity, SystemBoolean]를 직렬화 caonnot : 나는 내가 비주얼 스튜디오에서 예외를했다 웹 참조를 업데이트하려고

[WebMethod] 
public List<Entity> ReadEntities(Func<Entity, bool> predicate) 
{ 
    using (var entities = new GwEntities()) 
     return entities.Entities.Where(predicate).ToList(); 
} 

생성자

모든 해결 방법을 알려주세요.

+0

술어 (검색이 지원되는 경우)? 나는 확실하지 않다. –

+0

@Srinivas : 직렬화 할 수 없다. : – Homam

+0

술어 은 Func의 바로 가기입니다. Zebi

답변

4

이와 같이 자신의 코드를 직렬화 할 수 없습니다. 어디에서 시리얼 라이저를 시작하고 어디에서 정지해야합니까? 메서드 내에서 호출되는 메서드와 모든 어셈블리의 코드 만 전송해야합니까? 개체에 대한 LINQ는 비슷한 작업을 수행합니다. Expressions을 살펴보십시오. 이들은 전선을 통해 직렬화 될 수 있습니다.

+0

다음과 같은 질문이 있습니다. http : // stackoverflow.com/questions/217961/serializing-and-deserializing-expression-trees-in-c – ChrisWue

1

나는 당신이 고전적인 asp.net 웹 서비스로 클라이언트 콜백을 구현하지 못할 수도 있다고 생각한다. 당신은 이것을 위해 WCF를 선택할 수 있습니다. KickStart.

2

아니요. func 매개 변수를 호출자 측의 일부 코드에 대한 참조로 생각하면 서버에서 해당 코드를 어떻게 볼 수있을 것으로 기대합니까?

관련 문제