2010-03-28 2 views
1

내가 다음 클래스가 없습니다 :RIA가 : 기능을 활용하는 방법, 데이터 서버 측에

public class Customer 
{ 
    [Key] 
    public int Id { get; set; } 

    public string FirstName { get; set; } 

    public string SecondName { get; set; } 

    public string FullName { get { return string.Concat(FirstName, " ", SecondName); } } 
} 

문제는 각 필드는 계산합니다 (Silvelight 응용 프로그램) 클라이언트로 전송된다, 예를 들어 'FullName'속성은 다음과 같습니다.

[DataMember()] 
    [Editable(false)] 
    [ReadOnly(true)] 
    public string FullName 
    { 
     get 
     { 
      return this._fullName; 
     } 
     set 
     { 
      if ((this._fullName != value)) 
      { 
       this.ValidateProperty("FullName", value); 
       this.OnFullNameChanging(value); 
       this._fullName = value; 
       this.RaisePropertyChanged("FullName"); 
       this.OnFullNameChanged(); 
      } 
     } 
    } 

데이터를 전송하는 대신 트래픽이 많이 발생하므로 상당한 오버 헤드가 발생합니다. 나는 클라이언트 측 (실버 라이트 응용 프로그램)에서 계산을하고 싶습니다.

속성 구현을 수동으로 복제하지 않고도 가능합니까?

감사합니다.

+0

웹 양식 또는 다른 것으로 가정하면 AJAX 또는 JavaScript를 사용하여 유효성 검사를 수행 할 수 없습니까? –

+0

죄송합니다. 유효성 확인을 통해 무엇을 할 수 있습니까? 기능 복사의 목적은 FullName 속성 값을 전달하지 않고 FirstName = "Alex"및 SecondName = "Sereda"가있는 경우 클라이언트 측에서 FullName을 "Alex Sereda"로 계산하여 표시하는 것입니다. – Budda

답변

0

계산 된 속성을 부분 클래스로 다른 파일로 이동하고 "공유"명명 규칙 (MyFileName.Shared.cs)을 사용합니다. 예 :

//Employee.cs 
public partial class Employee 
{ 
    [Key] 
    public string EmployeeId { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

//Employee.Shared.cs 
public partial class Employee 
{ 
    public string LastNameFirst 
    { 
     get { return string.Format("{0}, {1}", LastName, FirstName); } 
    } 
} 

공유 파일의 코드가 클라이언트 측에 표시됩니다.