다음과 같은 문제가 있습니다.참조로 참조로 전달 된 다른 메서드가 업데이트 된 값으로 반환되지 않습니다.
내 컨트롤러에서 내 도메인 계층으로 전화를 걸어야합니다. 참조 (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 클래스) : _wcfClient.RequestSomething
는 반환시 Errors 컬렉션을 수정
public void PerformAction(BusinessEntity request)
{
//TryAction(System.Action action) basically wraps action in try catch and handles exceptions
TryAction(() =>
{
_wcfClient.RequestSomething(ref request);
});
}
경우 요청 객체는이 오류 업데이트 오류가 수집. 그러나 제어가 컨트롤러 &으로 되돌려지면 오류 수집이 확인되고 내 업데이트가 사라집니다.
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;
});
}
의도적으로 Domain Layer가 BusinessEntityObject에서 무언가를 수정하는 것을 원하지 않습니다. 적절한 경우 예외가 발생할 수 있습니다. – mozillanerd