पर निहित रूप से परिवर्तित नहीं कर सकता है, मुझे यकीन नहीं है कि यह एक कॉन्वर्सिस और कंट्रावायरिस समस्या है लेकिन मुझे यह काम नहीं मिल रहा है।MyType <Foo> को MyType <IFoo>
public interface IDto { }
public class PaginatedDto<TDto> where TDto : IDto {
public int PageIndex { get; set; }
public int PageSize { get; set; }
public int TotalCount { get; set; }
public int TotalPageCount { get; set; }
public bool HasNextPage { get; set; }
public bool HasPreviousPage { get; set; }
public IEnumerable<TDto> Dtos { get; set; }
}
public class PersonDto : IDto {
public int Id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public int Age { get; set; }
}
class Program {
static void Main(string[] args) {
var people = new List<PersonDto> {
new PersonDto { },
new PersonDto { },
new PersonDto { },
};
var paginatedPersonDto = new PaginatedDto<PersonDto>() {
Dtos = people
};
//ProcessDto doesn't accept this
ProcessDto(paginatedPersonDto);
}
private static void ProcessDto(PaginatedDto<IDto> paginatedDto) {
//Do work...
}
}
किसी कारण से मैं ProcessDto
विधि के लिए PaginatedDto<IDto>
रूप PaginatedDto<PersonDto>
पारित नहीं हो सकता,: यहाँ कोड है। कोई विचार मैं इस मुद्दे को कैसे हल कर सकता हूं?
आह, मेरे बेवकूफ सिर! मैंने वास्तव में कोशिश की लेकिन विधि को 'ProcessDto (PaginatedDto पेजिनेटेड डीटीओ' के रूप में छोड़ दिया और उम्मीद के अनुसार, यह काम नहीं किया। –
tugberk