在服务器端,我有以下课程:
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();
}
}
}
而不是数据传输(即流量消耗,在某些情况下会带来显着的开销)。我想在客户端进行计算(silverlight aplpication)。
如果没有手动复制属性实现,这是否可行?
谢谢。
答案 0 :(得分: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); }
}
}
共享文件中的代码将显示在客户端。