Chúng tôi đang xây dựng triển khai nhỏ đầu tiên của ServiceStack và chúng tôi cần một số làm rõ về DTO nằm trong một hội đồng riêng biệt được chia sẻ giữa khách hàng và máy chủ.ServiceStack DTO Assembly
The WIKI page for the new API khuyến cáo sau đây cho DTO
Trong phát triển Dịch vụ DTOs dịch vụ của bạn cung cấp công nghệ dịch vụ bất khả tri lớp của bạn mà bạn muốn giữ sạch và là 'phụ thuộc-miễn phí' càng tốt cho khả năng tiếp cận tối đa và tái tiềm năng -sử dụng. Đề xuất của chúng tôi là giữ cho DTO dịch vụ của bạn trong một hội nghị riêng hoàn toàn miễn phí.
Ngoài ra còn có đoạn này
* Nhưng giả sử bạn đi theo con đường bình thường của sao chép DTOs (trong cả hai nguồn gốc của dạng nhị phân), do đó bạn có một cái gì đó như thế này trên máy khách:
[Route("/reqstars")]
public class AllReqstars : IReturn<List<Reqstar>> { }
The code on the client now just becomes:
var client = new JsonServiceClient(BaseUri);
List<Reqstar> response = client.Get(new AllReqstars());
Mà làm cho một yêu cầu web GET để con đường/reqstars. Khi một tuyến đường tùy chỉnh không xuất hiện trên máy khách, nó sẽ tự động quay trở lại sử dụng các tuyến được xác định trước của ServiceStack.
Câu hỏi của tôi là ... hội đồng "phần lớn không có phụ thuộc" vẫn yêu cầu phụ thuộc vào ServiceStack do thuộc tính tuyến đường trên các lớp DTO?
Cảm ơn bạn mythz. Tôi tất cả đều có lợi cho việc giữ DTO trong một hội đồng riêng biệt, tôi chỉ không chắc chắn nếu có một phương pháp để làm cho hội đồng đó zero-dep. –
@mythz Tôi rất kinh ngạc về ServiceStack và một chút bị choáng ngợp bởi lượng thông tin (nhiều mâu thuẫn). Câu trả lời này đã giúp tôi đi đúng hướng để tạo ra một dll ServiceModel với DTO của tôi nhưng tôi không tìm thấy bất cứ điều gì trên doc của ServiceStack chỉ nó theo cách đó. Không có nơi nào ở đó nói rằng tham chiếu chỉ cần thiết là ServiceStack.Interfaces. RESTIntro ServiceModel bao gồm các tham chiếu đến LOTs của DLL, vì vậy nó cũng gây nhầm lẫn. Có một gói nuget để có được chỉ tham chiếu tối thiểu này để xây dựng một ServiceModel? – Loudenvier
@Loudenvier ServiceStack.Interfaces nằm trong gói ServiceStack.Common NuGet, không có gì tốt hơn trên NuGet tại thời điểm này (sẽ có sau NuGet lớn). Trong thực tế, đây không phải là vấn đề vì 'ServiceStack.Common' là gói phần mềm tối thiểu cần thiết cho các máy khách để có thể sử dụng [ServiceStack's .NET client.] (Https://github.com/ServiceStack/ServiceStack/wiki/C% 23 khách hàng). Nói chung, bạn nên cố gắng giữ cho các mô hình dịch vụ của mình hoàn toàn miễn phí, giảm thiểu các lỗi/ma sát mà khách hàng yêu cầu. – mythz