Elmah 로깅 오류가 있습니다. 오류는 전체 양식 게시물 정보를 저장합니다. URL을 통해 이러한 오류 및 XML 또는 JSON 표현에 액세스 할 수 있습니다. 디버깅하고 싶은 오류 중 상당수는 게시되고 이러한 오류를 재생산하는 것은 매우 어렵고 시간이 많이 걸립니다.elmah에 저장된 양식 데이터를 모델 객체로 직렬화합니다.
내가 원하는 것은 elmah 로그 정보를 사용하여 특정 작업을 수행하는 데 필요한 모델을 채우는 방법입니다. 그런 다음 단위 테스트에서이 모델을 사용하여 오류가 발생한 이유를 정확하게 확인할 수 있습니다.
지금까지 XML 및 JSON elamh 오류 정보로 모델을 파싱 해 보았습니다. 아래는 내가 JSON에서 구문 분석 뭘하려 :
MyModel model = ParseTo<MyModel>("Url of elmah json error");
public static T ParseTo<T>(string UrlOfJson)
{
string fullJsonString = string.Empty;
using(var webClient = new WebClient())
{
fullJsonString = webClient.DownloadString(UrlOfJson);
}
JObject o = JObject.Parse(fullJsonString);
string inputString = o.SelectToken("form").ToString();
return JsonConvert.DeserializeObject<T>(inputString);
}
이 거의 작동합니다. 거의 List 객체를 deserialize 할 수 없기 때문입니다.
public class MyModel
{
public int CustomerId { get; set; }
public List<Offer> Offers { get; set; }
}
public class Offer
{
public int Id { get; set; }
public string Name { get; set; }
}
...이 JSON : 다음과 같은 모델을 감안할 때
는
{
"CustomerId": "4564",
"Offers[0].Id": "635",
"Offers[0].Name": "name1",
"Offers[1].Id": "636",
"Offers[1].Name": "name2",
}
... 파서는 ELMAH에 의해 저장 JSON 올바른 아니므로 Offers
속성을 직렬화 실패 그것을위한 형식. 기본 ModelBinder에서 이해할 수있는 형식이지만,이 Json에 대해 어떻게 실행할 수 있습니까?
어떻게하면 모델 객체에 Elamh가 저장 한 Json을 직렬화 할 수 있습니까?
하지만 실제로는 FormCollection 키 - 값 쌍을 로그에 저장했습니다. 모델 자체가 아닙니다. 권리? – Nenad
직접 데이터를 저장하지 않았습니다. 오류가 발생하면 Elmah는 양식 게시 정보를 로그 아웃합니다. 양식 정보는 본질적으로 모델 정보입니다. – Dmitry