2009-04-27 4 views
0

수정 된 질문 : 이것은 분명해야합니다.다른 요청 개체를 같은 방법으로 전달하여 서식을 지정하는 방법은 무엇입니까?

 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; } 
} 

}

+2

문제가 무엇인지 명확하지 않습니다. - 형식 인수를 지정하거나 (개체별로) 또는 개체의 필드를 반복합니다 (이 경우 request.GetType() 및 Type.GetFiles 사용). –

+1

동의; 공식화 된 것처럼 이것은 매우 모호한 질문입니다. – Charlie

답변

0

당신은이 작업을 수행해서는 안된다. 학급에서 속성을 특정 형식으로 노출하게하려면 수업을 수업에 들게해야합니다. 어떤 종류의 클래스도 공개해서는 안됩니다. 필드. 데이터 자체와 코드 보기를 분리하여 데이터을 구분해야합니다.

클래스의 각 필드를 반복 할 때는 리플렉션을 사용하지 말고, DateTime의 유형을 확인하고 형식을 설정해야합니다. 당신은 분명히 같은 것을하지 말아야합니다 ...

var fields = req1.GetType().GetFields( 
    BindingFlags.Instance | BindingFlags.NonPublic) 
    .Where(f=> f.FieldType == typeof(DateTime)); 

그냥 그 코드를 타이핑하면 더러워집니다. :)

관련 문제