【问题标题】:Kentico 11: Prevent Page Type Code Generation from removing class name prefix in fieldsKentico 11:防止页面类型代码生成删除字段中的类名前缀
【发布时间】:2020-08-30 18:24:15
【问题描述】:

我有一个代码为 My.Product 的页面类型,并且我有一个名为 ProductType 的字段。

我使用 Kentico 代码生成器工具来获取 ProductType.Generated.cs 类,但是当我调用以下代码时,我看到字段 ProductType 已删除“产品”类名称前缀:

using (var product= new Product())
{
    return product.Fields.Properties;
}

当我检查ProductType.Generated.cs 时,我看到类名前缀确实被删除了。有什么办法可以配置这个不?还是我需要重命名所有字段?

【问题讨论】:

    标签: kentico kentico-11


    【解决方案1】:

    当我做同样的例子时,我得到一个

    Product.generated.cs

    不是ProductType。它应该使用文件的对象名称,而不是属性名称。

    您的对象代号是真正的 My.Product 吗?还是命名空间类似于 Custom ,然后是代号中的 My.Product (句点后的第二个字段)

    无论哪种方式,如果您希望生成的代码文件与 Kentico 生成的不同,您很可能必须重命名/编辑生成的代码文件。它仅基于 UI 中的名称。根据Kentico docs on the topic,这并不是真正推荐的。

    另外确保您使用的是版本 11 的修补程序 24 或更高版本。因为在 24 中修复了一些已知问题,用于生成页面代码。

    【讨论】:

    • @Mcveev 问题不在于类名本身。这会按预期生成。问题是您是否有一个以类名为前缀的字段名。如果您有一个名为 ProductType 的字段名称,它将生成一个名为“Type”而不是“ProductType”的字段
    • 按照您的说法@rory,它在功能上不是 OOTB。 Mcbeev 我们在他的陈述中是正确的。我建议尝试使用除您的建议和 2 个字段以外的名称的基本页面类型,看看您是否得到相同的结果
    • @BrendenKehren 我决定将我的字段重命名为不使用类名作为前缀。但是,Kentico 页面都有字段 [ClassName]ID,它在生成的代码中为我提供了一个只有“ID”的字段,因此需要手动处理。
    猜你喜欢
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 2012-02-20
    相关资源
    最近更新 更多