gpt4 book ai didi

c# - 有没有办法自动创建 ViewModel 属性或将 ViewModel 属性映射到 Model 属性?

转载 作者:行者123 更新时间:2023-12-03 10:22:18 24 4
gpt4 key购买 nike

我有以下模型/ View 模型对。这是一种非常常见的情况 - 从 ViewModel 到 Model 属性的纯映射 - 并且包含大量重复且容易出错的代码。

我想知道是否有更好的方法来做到这一点,特别是为了减少出错的机会(忘记属性,使用错误的属性名称)。

欢迎使用更多最新的语言功能,如 CallingMemberName,但目前我不确定我是否理解它们。


public class ParametrosGeometricos
{
public double DistanciaProjetorParede { get; set; } = 2280;
public double AlturaProjetor { get; set; } = 1000;
public double AlturaInferiorProjecao { get; set; } = 1010;
public double AlturaSuperiorProjecao { get; set; } = 1940;

public double DistanciaCameraParede { get; set; } = 2320;
public double AlturaCamera { get; set; } = 1770;
public double AlturaInferiorImagem { get; set; } = 860;
public double AlturaSuperiorImagem { get; set; } = 1740;
}

public class ParametrosGeometricosViewModel : ConfiguracoesViewModel<ParametrosGeometricos>
{

// (...)


public double DistanciaProjetorParede
{
get => Model.DistanciaProjetorParede;
set
{
Model.DistanciaProjetorParede = value;
RaisePropertyChanged(() => DistanciaProjetorParede);
}
}

public double AlturaProjetor
{
get => Model.AlturaProjetor;
set
{
Model.AlturaProjetor = value;
RaisePropertyChanged(() => AlturaProjetor);
}
}

public double AlturaInferiorProjecao
{
get => Model.AlturaInferiorProjecao;
set
{
Model.AlturaInferiorProjecao = value;
RaisePropertyChanged(() => AlturaInferiorProjecao);
}
}

public double AlturaSuperiorProjecao
{
get => Model.AlturaSuperiorProjecao;
set
{
Model.AlturaSuperiorProjecao = value;
RaisePropertyChanged(() => AlturaSuperiorProjecao);
}
}



public double DistanciaCameraParede
{
get => Model.DistanciaCameraParede;
set
{
Model.DistanciaCameraParede = value;
RaisePropertyChanged(() => DistanciaCameraParede);
}
}

public double AlturaCamera
{
get => Model.AlturaCamera;
set
{
Model.AlturaCamera = value;
RaisePropertyChanged(() => AlturaCamera);
}
}

public double AlturaInferiorImagem
{
get => Model.AlturaInferiorImagem;
set
{
Model.AlturaInferiorImagem = value;
RaisePropertyChanged(() => AlturaInferiorImagem);
}
}

public double AlturaSuperiorImagem
{
get => Model.AlturaSuperiorImagem;
set
{
Model.AlturaSuperiorImagem = value;
RaisePropertyChanged(() => AlturaSuperiorImagem);
}
}
}

最佳答案

听起来您正在寻找类似 AutoMapper 的内容

关于c# - 有没有办法自动创建 ViewModel 属性或将 ViewModel 属性映射到 Model 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51711230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com