Как я могу разобрать объект в класс, как json десериализации? - PullRequest
0 голосов
/ 01 апреля 2020

Я хочу создать собственный анализатор, который может анализировать значения объекта в типе <T>, который содержит класс с правильными значениями.

класс ASObject является просто Dictionary<string, object>

  public class Example {

    public string User { get; set; }
    public int Id { get; set; }

  }

  public static class ServiceResultParser<T>
  {
      public static T Parse(ASObject AS)
      {
          foreach(var l in AS.Values)
          {

          }
      }
  }

Usage:

var Result = ServiceResultParser.Parse<Example>(theobject);
string User = Result.User;

это только тестовый класс, который я назвал Example в json, мы можем использовать JsonConvert.DeserializeObject<T>(value)
, и нет, я не хочу разбирать json.
как я могу Теперь проанализируйте значение в Example классе?

относительно.

1 Ответ

0 голосов
/ 01 апреля 2020

Вы можете проверить, есть ли у свойства T свойство с именем, совпадающим с ключом словаря:

  public static class ServiceResultParser<T> where T : new()
  {
      public static T Parse(ASObject AS)
      {
          var temp = GetObject();
          foreach(var l in AS)
          {
            PropertyInfo[] properties = typeof(T).GetProperties();
                foreach (PropertyInfo property in properties)
                {
                    if(property.Name == l.Key) property.SetValue(temp, l.Value);
                }
          }
          return temp;
      }
        protected T GetObject()
        {
            return new T();
        }
  }

Также следует проверить соответствие типа свойств, например, c ...

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