كيفية استخدام TypeConverters لتحويل System.Datetime إلى نوع مخصص
-
07-07-2019 - |
سؤال
لسبب ما أنا بحاجة للادلاء / تحويل DateTime
في واحدة من العديد من الكائنات مخصصة
وهذا يبرهن على أن يكون من الصعب جدا القيام به بطريقة لطيفة عام.
وأنا أفكر في تنفيذ طريقة التمديد على كائن أو تمديد DateTimeConverter
ربما.
ولكن بعد ذلك ما يمكن أن يكون وسيلة عامة للتعامل مع هذا، لدي هدف ونوع جهة وفي هذه اللحظة أنا أستخدمه System.ConvertTo(..)
ولكن هذا يقتصر بشكل واضح لأنه فقط يدعم تحويل إلى صافي أنواع وغير قادر على تمديدها.
وأي أفكار؟
المحلول
هل يمكن إضافة منشئ للطابع الخاص الذي يأخذ التاريخ والوقت كمعلمة.
public class TimeStamp
{
public TimeStamp(DateTime dateTime, ...)
{
// Your code here to convert from dateTime to TimeStamp
}
}
وبعد ذلك في وقت لاحق ...
DestType Convert<DestType>( Object linqResult )
{
DestType result;
if( linqResult is DateTime && DestType is TimeStamp )
{
DateTime dbTime = linqResult as DateTime;
result = new TimeStamp( dbTime );
}
...
return result;
}
وربما يمكن أن تمتد حتى هذا مع كل أنواع التفكير والصانعين الخ ولكن إذا كنت تريد أن تبني كائن واحد الخروج من آخر (مثل الطابع الزمني من وقت التاريخ) منشئ يبدو طبيعيا.
ويساعد هذا الأمل، TJB
لا تنتمي إلى StackOverflow