2009-05-13 3 views
1

비슷한 데이터 모델을 포함하는 Windows Mobile 응용 프로그램과 데이터 모델을 기반으로 Windows Form 응용 프로그램이 있습니다. 사용자가 모바일 애플리케이션에 정보를 입력하면이를 메인 애플리케이션의 데이터와 동기화합니다. 이는 주요 애플리케이션에서 모바일 애플리케이션에 사용되는 클래스 정의를 필수적으로 가지고 두 개의 서로 다른 모델 간의 동기화를 코딩함으로써 달성됩니다.다른 버전의 개체 동기화

이제 모바일 응용 프로그램이 향상되고 새 버전이 생성되어 주 응용 프로그램에서 동기화가 발생하면 다른 데이터 모델을 가진 모바일 v1 또는 v2에서 동기화 할 수 있습니다.

동기화를 수행하는 가장 좋은 방법은 무엇입니까? 모바일 응용 프로그램의 기본 응용 프로그램 및 v2에 동기화해야하는 주문의 주문 날짜가 포함되어있는 경우가 있습니다. 이 속성을 포함하지 않는 모바일 앱의 v1에서 동기화하는 경우 무시해야합니다.

답변

1

나는 버전 2에 모델 객체의 하위 클래스 것 :

public class DataObject 
{ 
    public string CustomerName { get; set; } 
} 

public class DataObjectVersion2 : DataObject 
{ 
    public DataTimeOrderDate { get; set; } 
} 

는 그 다음 윈폼에서 그냥 볼 수있는 데이터의 양을 결정하는 유형을 확인할 수 있습니다되는 앱이 작동

public void SyncDataFromMobile(DataObject data) 
{ 
    this.WinformsData = new WinFormsDataObject(); 

    this.WinFormsData.CustomerName = data.CustomerName; 

    DataObjectVersion2 data2 = data as DataObjectVersion2; 

    if (data2 != null) 
    { 
     SyncDataFromMobileVersion2(data2); 
    } 
} 

private void SyncDataFromMobileVersion2(DataObjectVersion2 data) 
{ 
    this.WinFormsData.OrderDate = data.OrderDate; 
} 
+0

을 - 객체의 많은 버전이 있고 objjct의 특정 버전이 다른 객체의 특정 버전에 의존 할 때 생각할 필요가있을 때 비천히 될 수 있습니다 –

관련 문제