C# 如何将不同的请求对象传递给相同的方法进行格式化?
编辑问题:这应该是清楚的C# 如何将不同的请求对象传递给相同的方法进行格式化?,c#,C#,编辑问题:这应该是清楚的 using System; namespace UpdateDateTimeFields { class Program { static void Main(string[] args) { string dateTimeFormat = "dd/MM/yyy HH:mm:ss"; DateTime time = Date
using System;
namespace UpdateDateTimeFields
{
class Program
{
static void Main(string[] args)
{
string dateTimeFormat = "dd/MM/yyy HH:mm:ss";
DateTime time = DateTime.Now;
Update(time, dateTimeFormat); //Should update time
movemnet mymove = new movemnet();
mymove.FromDate = DateTime.Now;
mymove.ToDate = DateTime.Now;
mymove.Name = "Test_Movement";
Update(mymove, dateTimeFormat); //should update FromDate, ToDate
ParentClass cls = new ParentClass();
cls.mv.FromDate = DateTime.Now;
cls.mv.ToDate = DateTime.Now;
cls.CurrentDate = DateTime.Now;
cls.Comment = "ParentClass_Comment";
Update(cls, dateTimeFormat); //should update FromDate, ToDate, CurrentDate
}
private static void Update<T>(T Request, string format)
{
// How can this be acheived ???
//tried with Using Reflection to Get and Set values of Properties - NO JOY !!!
}
}
internal class movemnet
{
public DateTime FromDate { get; set; }
public DateTime ToDate { get; set; }
public string Name { get; set; }
}
internal class ParentClass
{
public movemnet mv { get; set; }
public DateTime CurrentDate { get; set; }
public string Comment { get; set; }
}
}你不应该这样做。如果希望类以特定格式公开属性,则应该让类这样做。您不应该公开类的任何字段。在您的思想和代码中,应该将数据本身和数据视图分开 您绝对不应该使用反射来迭代类中的每个字段,检查DateTime的类型并设置格式。你绝对不应该做像
var fields = req1.GetType().GetFields(
BindingFlags.Instance | BindingFlags.NonPublic )
.Where( f=> f.FieldType == typeof( DateTime ) );
我一输入那个代码就觉得脏兮兮的 我不清楚问题是什么-根据主题指定类型参数,或者在对象的字段上循环,在这种情况下使用request.GetType和type.GetFiles.Agreed;如前所述,这是一个相当模糊的问题。