У меня есть API, который создает ReportDocuments из Crystal, контроллер называется Reports , и это уникальный способ создания документов в моем приложении. Я пытаюсь создать уникальное действие, которое получит объект с некоторой информацией, такой как NameOfReport, TypeOfDocument и Data, и заполнит (создаст) отчет.
public class Report
{
public string NameOfReport { get; set; }
public string NameCreated { get; set; }
public ReportType Type {get; set;}
public dynamic Data { get; set; }
}
Мое действие
[HttpPost]
public string Create(Report report)
{
try
{
return _serviceReport.Create(report);
}
catch (Exception ex)
{
var resp = new HttpResponseMessage(HttpStatusCode.BadRequest)
{
Content = new StringContent(ex.Message)
};
throw new System.Web.Http.HttpResponseException(resp);
}
}
Мой вызов в MVC
public void CreateSomeReport(SomeData data)
{
// forget the good practices
_serviceApi.GetPost(".../Report/Create", new Report
{
NameOfReport = "Something",
NameCreated = "SomethingAgain",
Type = ReportType.PDF,
Data = data
});
}
Когда API получает заявку, .NET теряет ссылку на мой объект SomeData
, если я отправляю список, который я потерял, и мой код после этого сломался. И мне нужен мой класс SomeData
, содержащий динамическое свойство.
За моим _serviceApi я использую WebClient и JsonConvert.SerializeObject<T>(object)