У меня проблема с интерфейсом, расширяющим интерфейс. Давайте рассмотрим примеринтерфейс расширяет интерфейс для свойства
public interface IBaseClient
{
int PatientId { get; set; }
string PatientName { get; set; }
}
public interface IEchoClient2 : IBaseClient
{
string StudyInstanceUID{ get; set; }
}
Я реализую этот интерфейс IEchoClient2 в класс.
class RestClient2 : IEchoClient2
{
public string StudyInstanceUID
{
get;
set;
}
new public int PatientId
{
get;
set;
}
new public string PatientName
{
get;
set;
}
static void Main(string[] args)
{
IEchoClient2 client2 = new RestClient2();
client2.PatientId = 1;
client2.PatientName = "XYZ";
client2.StudyInstanceUID = "11";
JsonSerializer objJsonSerializer = new JsonSerializer();
objJsonSerializer.JsonConverter(client2);
}
}
public class JsonSerializer
{
public void JsonConverter(IEchoClient2 client2)
{
JsonRestService.JsonRESTClient client = new JsonRestService.JsonRESTClient();
}
}
, но когда я прохожу объект интерфейса для JsonConverter(IEchoClient2 client2)
метода, он отображает только IClient2 интерфейс свойства. Как я могу получить поддержку базового интерфейса так же, как и встроенный интерфейс.
на этом изображении вы увидите, что только StudyInstanceUID показан не другие две опоры. Как я могу получить эти два опорных интерфейса.
Почему вы делаете «новые публичные и т. Д.»?? –
Где определение 'IEchoClient2'? – ekad
Имутация просто показывает свойства 'ICilent2', потому что' client2' является экземпляром этого интерфейса. Если вы хотите получить доступ к другим свойствам, вы также можете просто перейти к этому интерфейсу. – HimBromBeere