gpt4 book ai didi

c# - 有没有办法覆盖部分类中属性的应用顺序?

转载 作者:太空宇宙 更新时间:2023-11-03 23:29:16 25 4
gpt4 key购买 nike

我有 2 个包含部分类的文件。一个生成的和一个手动的。我想覆盖、级联或以其他方式指定属性在编译时应用的顺序,以便更改类成员属性之一。

生成的代码:

[Table("dbo.product_variation")]
public partial class ProductVariation
{
[Key]
[Column("id")]
public int Id { get; set; }

[Required]
[Column("style_id")]
public int StyleId { get; set; }

[Required]
[Column("name"), StringLength(400)]
public string Name { get; set; }

[Column("general_description"), StringLength(2048), UIHint("MultilineText")]
public string GeneralDescription { get; set; }
}

手动代码:

[MetadataType(typeof(ProductsMetadata))]
public partial class ProductVariation
{
}

public partial class ProductsMetadata
{
[UIHint("RichText")]
public string GeneralDescription { get; set; }
}

这里的真正意图是用 UIHint("RichText") 覆盖 UIHint("MultilineText")。这在一台开发机器上运行良好,而不是在另一台开发机器上运行良好,这让我相信 1) 也许我不应该两次指定特定属性,或者 2) 也许有一种方法可以强制命令覆盖属性

最佳答案

那是不可能的,源代码中属性的顺序对编译器没有任何意义。

17.2 Attribute specification - MSDN

The order in which attributes are specified in such a list, and the order in which sections attached to the same program entity are arranged, is not significant

当您有分部类并且不同的源文件中使用了不同的属性时,编译器只会合并它们。

正如我所说,您不能让一个属性声明覆盖另一个声明,但是当您控制在运行时使用该属性的代码时,您可以做的是应用所有属性,应用您想要的任何顺序并且只使用其中一个。但我不认为这是你的情况。

关于c# - 有没有办法覆盖部分类中属性的应用顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32850522/

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