Код: Выделить всё
public class myModel
{
[JsonProperty(PropertyName = "id")]
public long ID { get; set; }
[JsonProperty(PropertyName = "some_string")]
public string SomeString {get; set;}
}
using System.Reflection;
using Newtonsoft.Json;
...
public static string GetFields(Type modelType)
{
return string.Join(",",
modelType.GetProperties()
.Select(p => p.GetCustomAttribute()
.Where(jp => jp != null)
.Select(jp => jp.PropertyName));
}
< /code>
Цель состоит в том, чтобы вызвать такую функцию (любая модификация в порядке) < /p>
string field = GetField(myModel, myModel.ID);
< /code>
Обновление #1 < /strong> < /p>
Я изменил вышеуказанное, но я не знаю, как получить строку идентификатора < /code> от mymodel.id < /code>. < /p>
public static string GetFields(Type modelType, string field) {
return string.Join(",",
modelType.GetProperties()
.Where(p => p.Name == field)
.Select(p => p.GetCustomAttribute())
.Where(jp => jp != null)
.Select(jp => jp.PropertyName)
);
}
< /code>
Я хочу предотвратить < /strong> жесткие строки фактических имен свойств. Например, я не < /strong> хочу называть приведенный выше метод как: < /p>
string field = GetField(myModel, "ID");
< /code>
Я бы предпочел использовать что -то вроде < /p>
string field = GetField(myModel, myModel.ID.PropertyName);
< /code>
Но я не совсем уверен, как правильно это сделать. < /p>
Спасибо! < /p>
Подробнее здесь: https://stackoverflow.com/questions/458 ... a-property
Мобильная версия