आप एक प्रकार कनवर्टर (कोई त्रुटि जाँच नहीं) का उपयोग कर सकते हैं:
Ship ship = new Ship();
string value = "5.5";
var property = ship.GetType().GetProperty("Latitude");
var convertedValue = property.Converter.ConvertFrom(value);
property.SetValue(self, convertedValue);
कोड को व्यवस्थित करने के मामले में, आप एक तरह का मिक्सकिन बना सकते हैं जिसके परिणामस्वरूप कोड इस प्रकार होगा:
Ship ship = new Ship();
ship.SetPropertyAsString("Latitude", "5.5");
यह इस कोड के साथ हासिल किया जाएगा:
public interface MPropertyAsStringSettable { }
public static class PropertyAsStringSettable {
public static void SetPropertyAsString(
this MPropertyAsStringSettable self, string propertyName, string value) {
var property = TypeDescriptor.GetProperties(self)[propertyName];
var convertedValue = property.Converter.ConvertFrom(value);
property.SetValue(self, convertedValue);
}
}
public class Ship : MPropertyAsStringSettable {
public double Latitude { get; set; }
// ...
}
MPropertyAsStringSettable
कई अलग-अलग वर्गों के लिए पुन: उपयोग किया जा सकता है।
आप अपनी प्रॉपर्टी या क्लासेस को अटैच करने के लिए अपने खुद के कस्टम टाइप कन्वर्टर भी बना सकते हैं :
public class Ship : MPropertyAsStringSettable {
public Latitude Latitude { get; set; }
// ...
}
[TypeConverter(typeof(LatitudeConverter))]
public class Latitude { ... }