編程類型的對象編程類型的對象
C#mvc4項目
我有兩個類似的ViewModels,包含了十幾個複雜的對象,我想打電話從我的創建和編輯操作的常用方法填充ViewModels。
東西沿着這
private void loadMdlDtl(CreateViewModel cvM, EditViewModel evM)
{
If (vM1 != null) { var vM = vM1}
If (vM2 != null) { var vM = vM2}
// about two dozen complex objects need to be populated
vM.property1 = …;
vM.property2 = …;
…
}
行這並不是因爲vM
工作不在範圍內。
有什麼辦法以編程方式鍵入vM
對象,以便我不必創建兩個loadModel方法或以其他方式重複大量代碼?
SOLUTION:
創建一個接口:
public class CreateViewModel : IViewModels, IValidatableObject
{
string property1 { get; set; }
int property2 { get; set; }
IEnumerable<ValidationResult> Validate(ValidationContext validationContext);
{
// implementation
}
}
public class EditViewModel : IViewModels, IValidatableObject
{
string property1 { get; set; }
int property2 { get; set; }
IEnumerable<ValidationResult> Validate(ValidationContext validationContext);
{
// implementation
}
}
呼叫從通過視圖模型操作方法:
public interface IViewModels
{
string property1 { get; set; }
int property2 { get; set; }
IEnumerable<ValidationResult> Validate(ValidationContext validationContext);
}
有無視圖模型從接口繼承
public ActionResult Create()
{
var vM = new CreateViewModel();
...
loadMdlDtl(vM);
...
}
但現在接受的界面,而不是視圖模型進入方法:
private void loadMdlDtl(IViewModel vM)
{
// implementation
}
我相信它應該是僞C#代碼。 –