как привязать интерфейсный объект к объекту твита в c# - PullRequest
1 голос
/ 22 марта 2020

У меня есть метод (GetUser ()), тип возвращаемого метода - это интерфейс (IUser), и у меня есть класс (User), включающий те же поля с IUser. Я хочу привязать результат методов GetUser к объекту User. Я использую c#.

Метод:

 IEnumerable<IUser> GetUser();

Интерфейс:

public interface IUser {

     public string Id{ get; set;} 
     public string Name{ get; set;}
     public string Username{ get; set;}
     public IAddress Address{ get; set;}
     //And more fields
}

Класс:

public class User {

     public string Id{ get; set;} 
     public string Name{ get; set;}
     public string Username{ get; set;}
     public Address Address{ get; set;}
     //And more fields
}

Я пробовал следующие случаи и не работает.

IEnumerable<User> user = AnyLibrary.GetUser() as IEnumerable<User>;

IEnumerable<User> user = (IEnumerable<User>) AnyLibrary.GetUser();

Возможно ли это и как можно я делаю это?

1 Ответ

1 голос
/ 23 марта 2020

Реальным решением проблемы является наследование класса IUser, как упоминали Адам Винсент и Стюарт.

Но если не хотите наследовать от класса Iuser. Другое решение, которое приходит мне в голову json сериализовать в результат метода GetUser () и десериализовать в объект User.

string users = JsonConvert.SerializeObject(AnyLibrary.GetUser());
IEnumerable<User> c_user = JsonConvert.DeserializeObject<IEnumerable<User>>(users);

Это решение хорошо работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...