我有一个从Json File生成的大模型,并且向所有类添加了一个名为Sigla_Container的字段。如何直接为所有名称为Sigla_Container的字段设置值,而无需一一设置?
模型如下:
public class ContainerViagemContainer
{
[Key]
[JsonProperty("Sigla")]
public string Sigla_Container { get; set; }
public object Descricao { get; set; }
public int Tara { get; set; }
public int Dimensao { get; set; }
public object Tipo { get; set; }
}
public class ContainerViagemArmador
{
[Key]
[Column(Order = 1)]
[JsonProperty("Id")]
public int Id_Armador { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 2)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public object CodigoGeParcei { get; set; }
public string Nome { get; set; }
public string Sigla { get; set; }
public object CnpjCpf { get; set; }
public object Endereco { get; set; }
public object Cep { get; set; }
public object Site { get; set; }
}
public class ContainerViagemNavio
{
[Key]
[Column(Order = 1)]
[JsonProperty("Nome")]
public string Nome_Navio { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 2)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public ContainerViagemArmador Armador { get; set; }
public string ImagemNavio { get; set; }
public double Comprimento { get; set; }
public int Lloyd { get; set; }
public string CallSign { get; set; }
public int CapacidadeTeus { get; set; }
public string Shortname { get; set; }
}
public class ContainerViagemJanelaAtracacao
{
[Key]
[Column(Order = 1)]
[JsonProperty("Descricao")]
public string Descricao_JanelaAtracacao { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 2)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public string Dia { get; set; }
public string Inicio { get; set; }
public string Fim { get; set; }
}
public class ContainerViagemBerco
{
[Key]
[Column(Order = 1)]
[JsonProperty("Ponto")]
public string Ponto_Berco { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 2)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public string Descricao { get; set; }
public string Sentido { get; set; }
public ContainerViagemJanelaAtracacao JanelaAtracacao { get; set; }
}
public class ContainerViagemViagem
{
[Key]
[Column(Order = 1)]
[JsonProperty("Id")]
public int Id_Viagem { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 2)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public string NumeroAtracacao { get; set; }
public string NumeroViagem { get; set; }
public string Status { get; set; }
public string Joint { get; set; }
public string Servico { get; set; }
public string MotivoEspera { get; set; }
public string LiberacaoRecebimento { get; set; }
public ContainerViagemNavio Navio { get; set; }
public string ChegadaPrevista { get; set; }
public string AtracacaoPrevista { get; set; }
public string SaidaPrevista { get; set; }
public string DeadLine { get; set; }
public string Chegada { get; set; }
public string Atracacao { get; set; }
public string Saida { get; set; }
public string InicioOperacao { get; set; }
public string FimOperacao { get; set; }
public string TipoOperacao { get; set; }
public string CodigoCodesp { get; set; }
public double CaladoAtracacao { get; set; }
public object CaladoDesatracacao { get; set; }
public string NumeroViagemImportacao { get; set; }
public string NumeroViagemExportacao { get; set; }
public ContainerViagemBerco Berco { get; set; }
public int PrevisaoDescarga { get; set; }
public int PrevisaoEmbarque { get; set; }
public int PrevisaoRemocao { get; set; }
public string LocalAtracacao { get; set; }
}
public class ContainerViagemCarreta
{
[Key]
[Column(Order = 1)]
public string PlacaCavalo { get; set; }
[Key]
[Column(Order = 2)]
public string PlacaReboque { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 3)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public string Entrada { get; set; }
public string Saida { get; set; }
public int PesoEntrada { get; set; }
public int PesoSaida { get; set; }
public object CNH { get; set; }
public object Motorista { get; set; }
}
public class ContainerViagemImportador
{
[Key]
[Column(Order = 1)]
[JsonProperty("Id")]
public int Id_Importador { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 2)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public object CodigoGeParcei { get; set; }
public string Nome { get; set; }
public object Sigla { get; set; }
public object CnpjCpf { get; set; }
public object Endereco { get; set; }
public object Cep { get; set; }
public object Site { get; set; }
}
public class ContainerViagemBl
{
[Key]
[Column(Order = 1)]
[JsonProperty("Numero")]
public string Numero_BL { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 2)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public int Lote { get; set; }
public ContainerViagemImportador Importador { get; set; }
public object Despachante { get; set; }
public object Armador { get; set; }
public object Nvocc { get; set; }
public string Data { get; set; }
public string PresencaCarga { get; set; }
public object DataEnvioPresCarga { get; set; }
public object StatusEnvioPresCarga { get; set; }
public object Recinto { get; set; }
public object Setor { get; set; }
public object Situacao { get; set; }
public string Documento { get; set; }
public object TipoDocumento { get; set; }
public object DataDocumento { get; set; }
public object DataArmazenagem { get; set; }
public object Mercadorias { get; set; }
public object Containers { get; set; }
public object Viagem { get; set; }
public object PortoOrigem { get; set; }
public object QuantidadeContainers { get; set; }
public object QuantidadeContainerEntradaTerminal { get; set; }
public bool Bloqueio { get; set; }
public object MotivoCaptacao { get; set; }
public object Status { get; set; }
public object Desembaraco { get; set; }
public int CifMoedaOrig { get; set; }
public object NumeroCE { get; set; }
}
public class ContainerViagemLacresEntrada
{
[Key]
[Column(Order = 1)]
[JsonProperty("Origem")]
public string Origem_LacresEntrada { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 2)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public string Verificado { get; set; }
public string Tipo { get; set; }
public object Status { get; set; }
}
public class ContainerViagemLacresSaida
{
[Key]
[Column(Order = 1)]
[JsonProperty("Origem")]
public string Origem_LacresSaida { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 2)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public string Verificado { get; set; }
public string Tipo { get; set; }
public string Status { get; set; }
}
public class ContainerViagemAvaria
{
[Key]
[Column(Order = 1)]
[JsonProperty("Local")]
public string Local_Avaria { get; set; }
[Key]
[Column(Order = 2)]
[JsonProperty("Tipo")]
public string Tipo_Avaria { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 3)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public string Complemento { get; set; }
public string Descricao { get; set; }
public string TermoAvaria { get; set; }
}
public class ContainerViagem
{
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID_ContainerViagem { get; set; }
[Key, ForeignKey("ContainerViagemContainer")]
[Column(Order = 2)]
public string Sigla_Container { get; set; }
public virtual ContainerViagemContainer ContainerViagemContainer { get; set; }
public object IdCtis { get; set; }
public ContainerViagemContainer Container { get; set; }
public object Exportador { get; set; }
public ContainerViagemViagem Viagem { get; set; }
public int TipoViagem { get; set; }
public string PortoOrigem { get; set; }
public string PortoDestino { get; set; }
public object PortoDestinoFinal { get; set; }
public string Entrada { get; set; }
public string Saida { get; set; }
public object StatusScanner { get; set; }
public string Status { get; set; }
public string StatusSigvig { get; set; }
public int PesoManifCarga { get; set; }
public int PesoManifTara { get; set; }
public int PesoManifBruto { get; set; }
public int PesoCarga { get; set; }
public int PesoBruto { get; set; }
public int DivergenciaPeso { get; set; }
public double DivergenciaPesoPorcent { get; set; }
public bool ExcessoDivergenciaPeso { get; set; }
public ContainerViagemCarreta Carreta { get; set; }
public IList<ContainerViagemBl> Bls { get; set; }
public IList<ContainerViagemLacresEntrada> LacresEntrada { get; set; }
public IList<ContainerViagemLacresSaida> LacresSaida { get; set; }
public object TermoAvaria { get; set; }
public IList<ContainerViagemAvaria> Avarias { get; set; }
public object Temperatura { get; set; }
public object SD { get; set; }
public object Booking { get; set; }
public object Agendamento { get; set; }
public object Armador { get; set; }
public object Imos { get; set; }
public object Cheio { get; set; }
public object Regime { get; set; }
public object Documentos { get; set; }
public IList<object> Desova { get; set; }
public int HreqId { get; set; }
public int TmodId { get; set; }
public int PesoCargaVGM { get; set; }
public int PesoTaraVGM { get; set; }
public int PesoBrutoVGM { get; set; }
}
如您所见,所有类中都有Sigla_Container字段,我尝试使用下面的代码来获取这些字段,但是如何设置这些字段的值?
ContainerViagem containerViagem = JsonConvert.DeserializeObject<ContainerViagem>(strToken["ContainerViagem"].ToString());
containerViagem.Container.Sigla_Container = container;
foreach (var campoJson in containerViagem.GetType().GetProperties())
{
if (campoJson.Name.Equals("Sigla_Container"))
{
}
}
答案 0 :(得分:1)
使用SetValue。将对象实例作为第一个参数,将新值作为第二个参数。
campoJson.SetValue(containerViagem, "New value");