Yukarıdaki gibi istiyorsun heralde , bu arada güzel soru teşekkürler.
bunun için kendi DescriptionToEnum
metodumuzu yazalım, ben extension yapmıyorum , istersen sen yapabilirsin , yer yer açıklamalar yaptım , metodun kullanım şeklide main içinde
class Program
{
static void Main(string[] args)
{
ParkingType p = DescriptionToEnum<ParkingType>("Ücretli");
Console.ReadLine();
}
public static T DescriptionToEnum<T>(string description)
{
var type = typeof(T);
//Tip kontrolü , tip enum değilse hata fırlat
if (!type.IsEnum)
throw new InvalidOperationException("Tip Enum Olmalı");
foreach (var itemField in type.GetFields())
{
var attribute = Attribute.GetCustomAttribute(itemField, typeof(DescriptionAttribute)) as DescriptionAttribute;
if (attribute != null)
{
if (attribute.Description == description)
return (T)itemField.GetValue(null);
}
else
{
if (itemField.Name == description)
return (T)itemField.GetValue(null);
}
}
throw new ArgumentException("Verilen description bulunumadı");
}
}
C Sharp String Description dan Enuma Çevirme
String den enuma convert etmek istiyorum , string bir veriyi nasıl enuma çevirebilirim ?
Aşağıda ki gibi bir enumım var , bana ön yüzden (view den) alan string olarak geliyor , Ücretli , Ücretsiz , Yok olarak , enumın description değeri geliyor aslında ön yüzde seçilene göre. Ben bu string değeri , yani enum ın descriptionını , nasıl enuma convert ederim?
ParkingType p=convertToEnumFromString("Ücretli");
gibi bir converte ihtiyacım var , nasıl yapabilrim ?Yorum Ekleyin