আপনি একটি ধরণের রূপান্তরকারী ব্যবহার করতে পারেন (কোনও ত্রুটি যাচাই করে নেই):
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 { ... }