Điều này phải đơn giản, nhưng tôi không thể tìm thấy bất kỳ thứ gì ngoài đó.Tự động tạo lớp Trình bao bọc trong C# bằng cách sử dụng Thành phần
Tôi có một lớp trong một lắp ráp (một thư viện chia sẻ - đó là một tập hợp các lớp proxy cho một dịch vụ Web) Tôi có một lớp trong một lắp ráp (dự án web)
Có một lớp được gọi là " Tiểu sử "trong hội đồng Proxy. Có một tập hợp các lớp học "sử dụng" một Cấu hình trong dự án web. Khi không có người dùng đăng nhập, một GenericProfile được sử dụng.
Theo nguyên tắc "tách mối quan tâm" .... Hội đồng proxy được sử dụng bởi các dự án khác và chỉ liên quan đến công cụ Dịch vụ web. Dự án web chỉ có nội dung trên web ở đó
Tuy nhiên, hiện tại cần có "GenericProfile" - hãy nghĩ nó là "Người dùng khách".
Điều hợp lý cần làm là xây dựng một giao diện được gọi là IProfile và khiến cả hai lớp bắt nguồn từ nó. Nhưng điều đó sẽ tạo ra sự phụ thuộc vòng tròn giữa hai hội đồng.
Ý tưởng tốt nhất tiếp theo là tạo một hội đồng thứ 3 có tên là MyInterfaces và đặt IProfile vào đó - nhưng điều đó gây ra sự vi phạm nguyên tắc Tách mối quan tâm theo ý kiến của tôi. Ít nhất, một ví dụ của vấn đề này có vẻ quá nhỏ để làm một mô đun phụ trong giải pháp của tôi.
Nhập lớp wrapper - hoặc lớp wrapper Composite (bất cứ điều gì bạn muốn gọi nó)
Tôi đang tìm kiếm cái gì đó kết thúc lên tạo ra một cái gì đó như thế này dưới đây. Có một công cụ hoặc phần mở rộng Visual Studio sẽ làm điều đó? Có thể là tệp .tt?
namespace WebProject
{
public interface IProfile
{...}
class MyWrapperClass : IProfile
{
Proxy.Profile _profile;
public MyWrapperClass(Proxy.Profile proxy)
{
_profile = proxy;
}
public string IProfile.Property1{ get { return _profile.Property1; } set { _profile.Property1 = value; } }
public string IProfile.Property2{ get { return _profile.Property2; } set { _profile.Property2 = value; } }
public string IProfile.Property3{ get { return _profile.Property3; } set { _profile.Property3 = value; } }
}
}
Và có vẻ như ai đó đã hỏi một cái gì đó tương tự như thế này ... http://stackoverflow.com/ques tions/2150416/tạo-pass-through-code-khi-thích-thành-over-thừa kế – 010110110101
Tôi không có ReSharper mặc dù ... – 010110110101
Tôi sẽ sử dụng T4 cho điều này (giống như bạn nghĩ là tốt) nhưng tôi không biết nếu đã có một mẫu hoàn chỉnh tồn tại cho điều này. Nhưng tôi nghĩ rằng một mẫu như vậy có thể được viết khá dễ dàng bằng cách sử dụng sự phản chiếu. –