2016-03-03 17 views
21

Đang cố gắng để thiết lập tùy chọn JsonOutputFormatter:JsonSerializerSettings và Asp.Net Lõi

var jsonFormatter = (JsonOutputFormatter) options.OutputFormatters.FirstOrDefault(f => f is JsonOutputFormatter); 
if (jsonFormatter != null) 
{ 
    jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 
} 

hoặc

mvcBuilder.AddJsonOptions(jsonOptions => 
    { 
     jsonOptions.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 
    }); 

Nhưng ngay sau khi tôi thêm này, tôi nhận được:

MissingMethodException: Phương pháp không tìm thấy: ' Newtonsoft.Json.JsonSerializerSettings Microsoft.AspNet.Mvc.Formatters.JsonOutputFormatter.get_SerializerSettings() '.

Tôi đang sử dụng các tiêu chuẩn Microsoft.AspNet.Mvc.Formatters.Json (6.0.0-rc1-final)

Edit: Giải quyết nó bằng cách cài đặt Newtonsoft.Json 6.0.6 (mà downgrades tất cả các tài liệu tham khảo khác)

Bất cứ ai cũng có mà chưa? Cảm ơn ..

+1

Trong trường hợp bạn đã cố gắng để chèn đoạn mã? 'MvcBuilder' là gì? Bạn có thể đưa mã của phương thức 'ConfigureServices' từ' Startup.cs', mà bạn sử dụng không? Đó là nơi chính xác để gọi 'AddJsonOptions'. – Oleg

+0

Điều này chỉ ngẫu nhiên bắt đầu xảy ra với tôi ngày hôm nay. Thành thật mà nói nó đã làm việc ngày hôm qua mà thực sự khiến tôi bối rối. –

Trả lời

1

tôi giả sử bạn đang sử dụng ASP.Net Core và bạn nên sử dụng "Microsoft.AspNetCore.Mvc":

Vì vậy, thay thế này:

"Microsoft.AspNet.Mvc": "6.0.0-rc1-final" 

của thành viên này:

"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final" 
42

.Net Core 1.0 RTM đi kèm với định dạng CamelCase out-of-the-box. Đây là một hành vi change từ RC2. Tuy nhiên, nếu bạn cần sửa đổi, hãy thử đoạn mã này:

services.AddMvc() 
     .AddJsonOptions(opt => 
    { 
     var resolver = opt.SerializerSettings.ContractResolver; 
     if (resolver != null) 
     { 
      var res = resolver as DefaultContractResolver; 
      res.NamingStrategy = null; // <<!-- this removes the camelcasing 
     } 
    }); 

Thông tin khác here.

Đối với DotNet lõi 1.0.1:

services 
      .AddMvcCore() 
      .AddJsonFormatters(o => o...); 
+1

Cảm ơn bạn rất nhiều! Tôi không thể tìm ra nơi vỏ lạc đà tự động đang diễn ra. –

+4

Bất kỳ ý tưởng nào về cuộc gọi này. Net lõi 1.1? –

+0

@LeviFuller cũng giống nhau - 'AddJsonOptions' – chester89

Các vấn đề liên quan