2010-08-23 3 views
7

웹 서비스 (.asmx)를 사용하고 Json.NET을 사용하여 해당 웹 서비스에서 반환하는 모든 객체를 직렬화하려면 방법이 있습니까? 하기 위해서? 즉Json.NET을 기본 Json 시리얼 화기로 만드는 방법

, 나는 수업이 같이 있습니다

[JsonObject(MemberSerialization.OptOut)] 
    public partial class Person 
    { 
     public string FirstName {get; set;} 

     public string LastName {get; set;} 

     [JsonIgnore]  
     public string Password {get; set;}  
    } 

그리고 내 웹 서비스

, 나는이 있습니다

[WebMethod] 
    public Person GetBlahPerson() 
    { 
     Person p = new Person(); 
     p.FirstName = "bob"; 
     p.LastName = "smith"; 
     p.Password = "don't tell"; 

     return p; 
    } 

jQuery를 사용하여 내가 JSON에 대한 반환 유형을 설정하면, 내 객체를 json으로 직렬화합니다.

web.config 또는 이와 비슷한 설정을 통해 Json.net을 사용할 수 있습니까?

답변

1

JSON - 아니요. (즉 매우 큰) 만

<add verb="*" path="*.asmx" type="YourScriptHandlerFactory" validate="false"/> 

를 사용하여 전체 IHttpHandlerFactory 다시 정의 할 수 있습니다 그러나 이것은 당신이 반사를 사용하여 기본 구현 후퇴, 또는 System.Web.Script.Services 네임 스페이스의 아날로그를 구현하거나해야 함을 의미합니다.

다른 목적 (중앙 집중식 오류 처리)을 위해 리플렉션 대체를 사용했기 때문에 가능한 것이지만 정확성이 필요하고 .NET 릴리스간에 매우 취약합니다.

기존 ASP.NET 또는 MVC를 사용합니까? MVC를 사용하는 경우 컨트롤러 만 사용하면 훨씬 쉽습니다.

+0

도움 주셔서 감사합니다. 우리는 다른 길로가는 것을 끝내었다. 객체를 반환해야 할 때 "Slim"클래스를 만들고 JsonConvert.SerializeObject를 사용하여 직렬화합니다. 그렇게하면 웹 서비스를 통해 반환 된 정보를 더 많이 제어 할 수 있습니다. –

관련 문제