Я сталкиваюсь со следующей проблемой:
Мне нужно сделать вызов с моего контроллера на мой уровень домена; который вызывает метод веб-службы, который принимает запрос по ссылке (ref).
Код контроллера:
//BusinessEntityObject is a Reference-Type (BusinessEntity) object
var request = View.BusinessEntityObject;
_workflowService.PerformAction(request);
if(request.Errors.Count != 0)
{
View.Errors = request.Errors;
return false;
}
Уровень домена (класс WorkflowService.cs):
public void PerformAction(BusinessEntity request)
{
//TryAction(System.Action action) basically wraps action in try catch and handles exceptions
TryAction(() =>
{
_wcfClient.RequestSomething(ref request);
});
}
IF _wcfClient.RequestSomething
изменяет коллекцию ошибок по возвращении, объект запроса имеет эту обновленную коллекцию ошибок. Однако, как только управление возвращается контроллеру и проверяется коллекция ошибок, мои обновления исчезают.
Edit00: ооо и бесстыдный плагин, я нахожусь на 14 репутации, и я пытался поднять кучу вопросов / ответов, которые были полезны для меня, и он говорит, что я не могу, потому что мой уровень низкий.
Edit01: Большое спасибо, Дилан, всегда приятно иметь такой сайт, чтобы указывать на очень маленькие вещи, которые можно упустить. Обновленный код, который вернул мне значение, выглядит следующим образом:
Уровень домена (класс WorkflowService.cs):
public BusinessEntity PerformAction(BusinessEntity request)
{
//TryAction(System.Action action) basically wraps action in try catch and handles exceptions
TryAction(() =>
{
_wcfClient.RequestSomething(ref request);
return request;
});
}