Вот класс, в котором я пытаюсь связать мой сериализованный объект.
public class RequestModel<T>:Event
{
public Guid Id { get; set; }
public T Model{ get; set; }
public string IpAddress { get; set; }
public string EntityType => typeof(T).ToString();
//public string EntityType => typeof(T).ToString();
public UserDataViewModel UserData { get; set; }
public string Url { get; set; }
public DateTime LogDate { get; set; }
public override Type RequestEntityType { get { return typeof(T); }}
public string Action { get; set; }
public RequestModel()
{
Id = Guid.NewGuid();
}
}
public class RequestModelMapper : Profile
{
public RequestModelMapper()
{
CreateMap(typeof(RequestModel<>), typeof(CreditCardLog))
.ForMember("CreatedDate", f => f.MapFrom("LogDate"))
.ForMember("LogID", f => f.MapFrom("Id"))
.ForMember("EntityType", f => f.MapFrom("EntityType"))
.ForMember("IPAddress", f => f.MapFrom("IpAddress"))
.ForMember("Action", f => f.MapFrom("Action"))
.ForMember("Data", opt => opt.ResolveUsing(new CustomResolver(), "Model"));
}
public class CustomResolver : IMemberValueResolver<object, object, object, string>
{
public string Resolve(object source, object destination, object sourceMember,string destinationMember, ResolutionContext context)
{
try
{
var serializer = new JavaScriptSerializer() { MaxJsonLength = 86753090};
// Perform your serialization
var dataToSave= serializer.Serialize(sourceMember);
return dataToSave;
}
catch (Exception e)
{
throw e;
}
}
}
}
, но он продолжает выдавать исключение циклической ссылки, хотя я также установил настройку
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
в global.asax Application_Start ().
есть что-то, что я пропустил, это будет очень полезно. Заранее спасибо.