Tôi đã tạo ra phương pháp này mà là một nhà máy đối tượng:Tạo phương pháp chung chung và sử dụng loại tham số
public static T GetService<T>(T serviceInterface)
{
if (serviceInterface.Equals(typeof(IMemberService)))
{
return (T)(object)new MemberService();
}
else if (serviceInterface.Equals(typeof(ILookupService)))
{
return (T)(object)new LookupService();
}
throw new ArgumentOutOfRangeException("No action is defined for service interface " + serviceInterface.Name);
}
Bây giờ, tôi muốn đi xa hơn và loại bỏ nhu cầu tham số "serviceInterface", nhưng vấn đề của tôi là - Tôi không biết cách so sánh thông số loại T với giao diện: làm
T.Equals(typeof(ILookupService))
cho lỗi trình biên dịch: 'T' là 'tham số kiểu', không hợp lệ trong ngữ cảnh đã cho.
Bất kỳ ý tưởng nào về cách tôi có thể so sánh thông số loại với giao diện?
Cảm ơn bạn, Andrey
Bạn có thể chọn giá trị từ dịch vụBiến tương tác như thế này -> https://stackoverflow.com/a/44114122/1580548 – ddagsan