使用数据注释进行模型验证的错误信息
给定以下类: using System.ComponentModel.DataAnnotations; public class Book{ public Contact PrimaryContact{get; set;} public Contact SecondaryContact{get; set;} [Required(ErrorMessage="Book name is required")] public string Name{get; set;} } public class Contact{ [Required(ErrorMessage="Name is required")] public string Name{get; set;} } 使用Book In Book in DataAnnotations的每个实例,我是否可以给出一个明显的错误消息?例如,如果PrimaryContact实例中缺少名称,则错误将读取
0 2024-04-17
编程技术问答社区
C#在List<string>上设置数据注解
我有这个代码: [Required] public List myStringList { get; set; } 不幸的是,它不起作用,验证器完全忽略了它. 此外,这很好: [Required] public string myString { get; set; } 和数据也可以正常工作.显然,问题不是在我的验证器上,而是在注释上.所以问题是,我应该如何在列表中设置数据注释? 解决方案 创建自己的数据注释属性,粗糙示例: public class ListHasElements : ValidationAttribute { public override bool IsValid(List mylist) { if(mylist == null) return false; return mylist.Any(); } } 然后使用它: [ListH
0 2024-04-16
编程技术问答社区
自定义数据注释 ASP.NET MVC C#
我有关于MVC 2的Follwing问题. 这是我的模型: public class Pmjob { [Tooltext="Hier soll der Name eingegeben werden"] [DisplayName("Type")] public int Name { get; set; } } 现在,我想在我视图中访问工具文本项目. g.: @Html.ToolTextFor(Model => Model.Pmjob.Name) 或BL: if ( Model.Pmjob.Name.Tooltext == "") { } 这是可能的吗? 解决方案 创建一个抽象类MetadataAttribute: public abstract class MetadataAttribute : Attribute { /// /// Method for processing cust
0 2024-04-15
编程技术问答社区
Java注解和C#属性的异同点是什么?
我有一个Java库,我正在考虑移植到C#. Java库广泛使用注释(既在构建时间和运行时间.) 我从未使用过C#属性,但请理解它们是Java注释的粗略. 如果我使用属性来替换注释,我需要知道什么?什么会一样?不同的?我会咬什么? 解决方案 控制何时使您的元数据可访问何时在两种语言之间有所不同. java提供 java. lang.annotation.tention 注释和 java.lang.annotation.teention -policy enum 可以控制何时可以访问注释元数据.这些选择因Runtime(最常见的 - 保留在类文件中的注释元数据)到Source(由编译器丢弃的元数据)不同.您使用此标记自定义注释接口 - 例如: @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.CLASS) public @interface TraceLogging { // etc } 可
0 2024-04-13
编程技术问答社区
没有注释的Protobuf-net序列化
我看了看 this 在我不需要保持向后兼容性的情况下,我必须有一个解决方案,而不必用Protobuf-net所需的属性装饰数十个课程.因此,我尝试使用RuntimeTypeModel.Default.InferTagFromNameDefault = true;,但是我可能无法正确使用它,因为序列化器呼叫仍然抛出一个例外,要求合同.这是我的快速测试,我在做什么错? public enum CompanyTypes { None, Small, Big, Enterprise, Startup } public class BaseUser { public string SSN { get; set; } } public class User : BaseUser { public string FirstName { get; set; } public string LastName { get; set; } public
0 2024-04-12
编程技术问答社区
接口成员上的属性不起作用
在我的应用程序中,几种模型需要Password属性(例如,Registration和ChangePassword模型). Password属性具有DataType和Required的属性.因此,为了确保可重复使用能力,我创建了: interface IPasswordContainer{ [Required(ErrorMessage = "Please specify your password")] [DataType(DataType.Password)] string Password { get; set; } } 和 class RegistrationModel : IPasswordContainer { public string Password { get; set; } } 不幸的是,属性不起作用. 然后我尝试将接口更改为类: public class PasswordContainer {
2 2024-04-11
编程技术问答社区
MS图表矩形注释的宽度是百分比而不是像素
为什么MS图表矩形注释宽度为百分比,而不是像MSDN所说的像素? https://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.charting.annotation.width(width(V=VS.110) 这就是MSDN所说的 获取或设置注释的宽度. 我想将自己的宽度设置为像素的像素.我在这里错过了什么吗? 解决方案 恭喜,您在文档中找到了一个错误!仅通过按照链接到 andotation.height docs .. 与Chart控制中的许多其他人一样,Annotation的维度确实以百分比为单位给出.这具有一个优势,他们像其他许多元素一样,通过Chart控制巧妙地生长和收缩. 因此,如果您将图表的宽度加倍,则基本上将显示的DataPoints的空间加倍,如果您的Annotation越过宽度的1/3,则在调整图表大小后仍将执行此操作..
4 2024-04-11
编程技术问答社区
用普通的C/C++向PDF添加注释
我正在寻找一种在PDF中添加注释的方法,仅使用普通C/C ++(没有第三方库). 如何获得此结果? 解决方案 这是 PDF文件由不同的二进制对象组成,可以使用不同的算法,压缩方案(有损和无损)和编码过滤器来压缩,编码或加密.每个对象都在参考表中引用,其中包含有关其在文件中位置的信息. 您将需要知道如何处理该表,您将需要实现所有可能的压缩方案,编码过滤器和加密算法,然后您必须处理PDF对象的所有可能结构. . 在PDF规范中,这些对象称为字典,它们由条目组成.每个条目都有一种可以是简单类型的类型,也可以是其他字典(或对其的引用),也可以是其中一种元素类型的数组.因此,我们可以说PDF基本上是字典对象的树. 您的代码能够处理规范中的每个可能的字典,并且使用树结构,您可以转到规范的第8章 - 交互式功能,部分 8.4--注释,并实施一种将注释词典添加到PDF文件的方法. 您应该注意到,我什至没有提及PDF文件的热门话题,例如字体,颜色空间,透明胶片和页面中的绘图说
0 2024-04-10
编程技术问答社区
对C/C++代码进行注释
最近,我掌握了微软的标准注释语言(SAL)用于注释C/C ++源代码.此功能对于调试和开发过程中可能非常有帮助,但不幸的是,它不是便携式跨平台库.是否有用于注释C/C ++代码的标准或开源工具? gcc 中是否有类似的功能? 解决方案 我知道的最接近的是 gcc的属性不支持语法. GCC属性语法不支持SAL那么多的注释,但是您可能会发现一些注释有用. 另外,如果您使用的模板,则可能需要查看断言,大多数编译器都支持. 还要注意, clang比GCC 更大的注释,并且使用Clang的静态分析器可能更接近您的接近'需要.
0 2024-04-08
编程技术问答社区
在c int a:16;中这是什么意思?
可能的重复: 'unsigned temp:3'是什么意思: 请符号是什么意思 int a:16; 我发现它是这样的代码,并且确实编译了. 结构名称{ int a:16; } 解决方案 这是 bitfields.html"> bitfield .. 这个特殊的比特菲尔德没有多大意义,因为您只能使用16位类型,并且您正在浪费一些空间,因为Bitfield被填充到int的大小. . 通常,您将其用于包含位元素的结构: struct { unsigned nibble1 : 4; unsigned nibble2 : 4; } 其他解决方案 struct name { int a:16; } 它的含义a定义为 16位记忆空间. int的其余部分(16位)可用于定义另一个变量,例如b,如这样: struct name { int a:16; int b:16; } 因此,如果int为32位(4个字节),则将一
2 2024-04-06
编程技术问答社区
java注解在java字节码中是如何体现的?
我尝试对包含JUNIT测试的.Class文件进行反复编译. 我读了字节代码,但没有看到@test注释的任何线索(在Java源代码中使用). 作为元数据,在字节码中如何表示注释? 解决方案 注释出现在与之关联的事物的字节代码之前.如果您没有看到注释,则可能是一个旧的杂交器(其中大多数是)
2 2024-04-05
编程技术问答社区
Java注解的默认值是否被编译成字节码?
我尝试对Java字节码实现多个静态分析.他们尝试计算某种方法是否具有特定属性,例如是一种工厂方法.由于这些分析很难测试,因此我决定编写一些Java代码,并直接用正确的属性注释方法.运行分析后,很容易自动检查计算和注释的属性是否相同. myannotation: @Retention(RUNTIME) @Target(METHOD) public @interface FactoryMethodProperty { FactoryMethodKeys value() default FactoryMethodKeys.NonFactoryMethod; } 示例测试代码: public class PublicFactoryMethod { private PublicFactoryMethod(){ // I'm private } @FactoryMethodProperty public static
2 2024-04-05
编程技术问答社区
向注解传递动态参数
我想知道是否有可能将动态值传递给注释属性. 我知道注释不是被设计为修改的,但我正在使用休眠过滤器在我的情况下,要放置的条件不是静态的. 我认为唯一的解决方案是使用其目的是读取和修改字节代码的库,例如javassist或 asm ,但是如果有另一个解决方案,那就太好了. ps:在我的情况下的困难是我应该修改注释(属性的值),但是上面提到的库允许创建不编辑的库,这就是为什么我想知道另一个解决方案 预先感谢 解决方案 我不知道它是否与您的框架整合在一起,但我想建议以下内容: 创建一个注释,该注释接收实现验证规则的类 创建一个接口可以接收的接口 创建具有规则逻辑的接口实现 将注释添加到您的模型类 创建一个注释处理器,该处理器适用于每个注释字段的验证 我在Groovy中写了以下示例,但是使用标准的Java Libs和惯用的Java.警告我,如果有任何不可读的东西: import java.lang.annotation.* // Our R
2 2024-04-05
编程技术问答社区
使用Ant的Java 6注释处理配置
我有一个自定义注释,并且是处理器和处理器.我如何配置我的蚂蚁构建文件: 注释处理器应用于注释类,并在" Gen"文件夹中生成源文件 项目中的其他源文件可以使用生成的源文件(来自注释处理). 解决方案 这不是很漂亮,但这就是我要做的. (来源 javac ant Task .由Javac Ant任务支持. .... 我不使用 apt工具因为文档状态 被告知,APT工具确实是JDK框架的不
2 2024-04-04
编程技术问答社区
用Java注解处理器来分析表达式?
我一直在玩Java注释处理器,结果出色. 现在我想做以下操作,据我所知,这是不可能的. 我有几个实现构建器模式的类.例如说 new FooBuilder().doSomething("A").doSomethingElse("B").execute(); 使用execute()方法终止方法调用的"链"至关重要.否则,建筑商基本上将什么都不做. 因此,我想使用JAP在编译时在某些表达式类型上验证execute()方法的存在.不幸的是,我可以检索的最好的粒度信息是在方法声明级别上,而不是表达式. 我根本想要什么? 解决方案 Java的标准注释处理器仅在声明中提供回调,例如方法和现场声明. 可以使用注释处理器来分析表达式,但要做更多的工作.您将必须编写一个注释处理器,该处理器在每种方法中,为该方法获取AST(抽象的语法树或解析树),然后访问该方法中的每个表达式. AST是编译器特定的. 这样做的两个最著名的项目是检查器框架和 lombok .也许
2 2024-04-04
编程技术问答社区
如何将一个方法标记为强制性的?
假设您使用构建器模式创建一个类名称人员,并假设构建器类包含方法body(),head(),head(),arms(),当然build(),并且您考虑方法head()和build()对此类的用户的强制性. ,如果可能的话,我们希望以某种方式标记这些方法必须使用注释.如果此类的用户试图构建一个人实例,但忘了调用这些方法中的任何一种,我们想获得某种警告 - 从Java编译器或可能来自Eclipse或Maven,我们用来构建我们的项目 - 他们中的任何一个都会做. 有可能做吗?您会建议哪种方式? 解决方案 这是一个使用不同类型来使某些零件强制性的示例(这也使您称之为强制性的订单): package test; import test.StepOne.StepThree; import test.StepOne.StepTwo; import test.StepOne.LastStep; public class TestBuilder { public s
4 2024-04-04
编程技术问答社区
现在必须明确声明错误注释处理器
突然,我在执行应用程序中遇到了错误. 我知道此Qustion已经在这里问:但是,解决方案不会回答问题:( 这是我的build.gradle apply plugin: 'com.android.application' apply plugin: 'kotlin-android' android { compileSdkVersion 26 buildToolsVersion '27.0.0' aaptOptions { cruncherEnabled = true } defaultConfig { applicationId "com.freelance.crdzbird_dev.clarobadge" minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "1.0
2 2024-04-04
编程技术问答社区
用HTML <SPAN>标签和CSS为文本中的重叠注释设计样式
我想用类别注释文本.每个类别都有特定的颜色.另外,我想专注于重叠注释的可视化. 注释和原子 文本的一部分(用户选择),我称之为原子. 对我来说,有4种可以重叠的原子,如下所示: lorem {[ipsum]} dolor sit amet,consettur sadipscing elitr. (身份) {lorem [ipsum] dolor}坐在armet,consettur sadipsing elitr. (包含) loRem {ipsum dolor [sit amet,} consettur] sadipsing elitr. (重叠) lorem ipsum dolor sit amet,[consettur] {sadipscing} elitr. (邻居) 我们假设只有2个类别A,{}}和b. (但它也适用于更多) 我看过的所有工具都由背景色或不同样式类型重叠(例如强调a和b的背景色).使用背景颜色时,重叠的零件通常具有较深或混
2 2024-04-02
编程技术问答社区
是否可以在纯JPA中进行类型转换(从布尔型到yes_no)?
Hibernate中有一个注释,可以将布尔类型持续为数据库中的" y"/" n". https ://stackoverflow.com/questions/1154833/configure-hibernate-using-jpa-jpa-to-store-y-n-for-type-type-type-type-type-type-type-type-type-type-type-type-type-type-type-type-type-type-type-type-type-boole 0-1 但是,如果我不想绑定到冬眠,是否可以在不使用getters/setter的情况下在纯JPA中进行操作? 解决方案 通过使用某种转换 可以实现无冬眠的纯JPA private boolean enabled; @Transient public boolean isEnabled() { return this.enabled; } public void s
2 2024-04-01
编程技术问答社区
如何在Java中注释一个代码块
是否可以注释一个代码块?例如.用于周期还是简单的卷曲括号?如果是这样,如何? first.java package An; import An.ForCycle; class First { public static void main(String[] args) { First f = new First(); } public First () { @ForCycle { // error: illegal start of type { int k; } @ForCycle for (int i = 0; i
8 2024-04-01
编程技术问答社区