這就像關於問題分層和分離的任何其他問題。
使用DTO。在業務層中,引入用於執行要執行的操作的類型,並在類型之間執行映射。
你的問題不是很具體,所以我會去美孚:
服務層:
public class ServiceFooRequest
{
public int ID { get; set; }
}
public class ServiceFooResponse
{
public string Bar { get; set; }
}
public ServiceFooResponse GetFoo(ServiceFooRequest request)
{
return new ServiceFooResponse
{
Bar = "Baz"
};
}
業務層:
public class BLFooResponse
{
public string Bar { get; set; }
}
public class BLL
{
public BLFooResponse GetFoo(int id)
{
var serviceResponse = _serviceReferenceClient.GetFoo(new ServiceFooRequest
{
ID = id
});
return new BLFooResponse
{
Bar = serviceResponse.Bar
};
}
}
MVC:
public class FooViewModel
{
public string Bar { get; set; }
}
public ActionResult GetFoo(int id)
{
var businessFooResponse = _bll.GetFoo(id);
var fooViewModel = new FooViewModel
{
Bar = businessFooResponse.Bar
};
return View(fooViewModel);
}
謝謝您的答覆,上述方案解決了我的第二個問題。我將如何將控制器的請求參數作爲對象發送給BL,而不是像Int id,string'vin',decimal 12.00。因此,該對象將映射到服務請求參數以調用服務 – user3334074