كيفية استخدام TypeConverters لتحويل System.Datetime إلى نوع مخصص

StackOverflow https://stackoverflow.com/questions/429897

سؤال

لسبب ما أنا بحاجة للادلاء / تحويل 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top