问题标签 [attributes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - c# 带有重复代码的属性
我有一个类有一堆看起来像这样的属性:
如果我可以依靠 C# 3.0 为这些生成后备存储,那会容易得多,但是有什么方法可以排除 IsDirty=true; 这样我就可以编写类似这样的属性并且仍然得到相同的行为:
.net - AssemblyVersion、AssemblyFileVersion 和 AssemblyInformationalVersion 之间有什么区别?
有三个程序集版本属性。有什么区别?如果我使用AssemblyVersion
并忽略其余部分可以吗?
MSDN 说:
组装版本:
指定被赋予属性的程序集的版本。
-
指示编译器为 Win32 文件版本资源使用特定版本号。Win32 文件版本不需要与程序集的版本号相同。
-
定义程序集清单的附加版本信息。
这是对使用程序集属性的最佳实践是什么的后续行动?
c# - 将 UserControl 属性设置为不显示在 VS 属性窗口中
我的 Asp.net 项目中有一个具有公共属性的 UserControl。当用户在 IDE 中突出显示 UserControl 的实例时,我不希望此属性显示在 Visual Studio 属性窗口中。我应该使用什么属性(或其他方法)来防止它出现?
c# - PropertyGrid、DefaultValueAttribute、动态对象和枚举
注意:我使用的是 .Net 1.1,尽管我并不完全反对使用更高版本的答案。
我在 PropertyGrid 中显示一些动态生成的对象。这些对象具有数字、文本和枚举属性。目前我在设置枚举的默认值时遇到问题,因此它们在列表中并不总是显示为粗体。枚举本身也是动态生成的,并且除了默认值之外似乎工作正常。
首先,我想展示在导致错误的情况下如何生成枚举。第一行使用自定义类来查询数据库。只需将此行替换为 DataAdapter 或使用数据库值填充 DataSet 的首选方法。我正在使用第 1 列中的字符串值来创建我的枚举。
现在了解如何创建类型。这主要基于此处提供的示例代码。本质上,将 pFeature 视为数据库行。我们遍历列,使用列名作为新的属性名,使用列值作为默认值;至少这是目标。
最后,我们使用该类型创建它的实例并加载默认值,以便稍后使用 PropertiesGrid 显示它。
但是,当我们尝试获取枚举的默认值时,这会导致错误。DefaultValueAttribute dva 未设置,因此当我们尝试使用它时会导致异常。
如果我们更改此代码段:
对此:
获取 DefaultValueAttribute dva 没有问题;但是,该字段随后在 PropertiesGrid 中以粗体显示,因为它与默认值不匹配。
当我将默认值设置为生成的枚举时,任何人都可以弄清楚为什么我无法获得 DefaultValueAttribute 吗?正如你可能猜到的,我对 Reflection 还是新手,所以这对我来说都是全新的。
谢谢。
更新:作为对 alabamasucks.blogspot 的回应,使用 ShouldSerialize 肯定会解决我的问题。我能够使用普通类创建方法;但是,我不确定如何为生成的类型执行此操作。据我所知,我需要使用 MethodBuilder 并生成 IL 来检查该字段是否等于默认值。听起来很简单。我想在 IL 代码中表示这一点:
我能够使用 ildasm.exe 从类似的代码中获取 IL 代码,但我有几个问题。如何在 IL 代码中使用 val 变量?在我的示例中,我使用了一个值为 0 的 int。
这肯定会变得很棘手,因为 IL 对每种类型都有不同的加载命令。目前,我使用整数、双精度、字符串和枚举,因此代码必须根据类型进行自适应。
有谁知道如何做到这一点?还是我走错了方向?
nhibernate - 使用 NHibernate 映射枚举集合
使用 NHibernate 映射枚举集合
具体来说,使用 Attributes 进行映射。
目前我有这个工作将集合映射为 Int32 类型,NH 似乎可以处理它,但它并不完全理想。
尝试将集合映射为我尝试映射的枚举类型时,我收到的错误是“无法确定类型”。
我发现一个帖子说将一个类定义为
然后将枚举映射为 CEnumType,但这会给出“CEnumType is not mapped”或类似的东西。
那么有没有人有这样做的经验?
所以无论如何,只是一个简单的参考代码片段来举一个例子
那么,任何人都得到了正确的属性让我将这个枚举集合映射为实际的枚举?如果它们也作为字符串而不是整数存储在数据库中,那就太好了,但这并不是完全必要的。
c++ - C++ 的属性和反射库?
大多数成熟的 C++ 项目似乎都有自己的反射和属性系统,即用于定义可以通过字符串访问并自动序列化的属性。至少我参与的许多 C++ 项目似乎都在重新发明轮子。
您是否知道任何支持反射和属性容器的 C++开源库,特别是:
- 通过宏定义 RTTI 和属性
- 通过代码访问 RTTI 和属性
- 属性的自动序列化
- 监听属性修改(例如 OnValueChanged)
.net - VS:构建时忽略缺少的 XML 注释的属性
我有一个使用 xml 文档的 VS2008 解决方案,并且在为发布模式打开错误时我们会收到警告(恕我直言,这是一个不错的功能);然而,这会导致诸如(自我描述)枚举的每个元素之类的“缺少 xml 注释”错误的长列表。
有谁知道一个属性或类似的东西会关闭对 xml 注释的要求?理想情况下,对于某些分隔区域,而不仅仅是一行(否则我可以在每个项目之前放置空标签,有点违背目的......)
谢谢!
.net - DirectoryInfo.GetDirectories() 和属性
我正在使用DirectoryInfo.GetDirectories()
递归查找给定路径下的所有子目录。但是,我想排除系统文件夹,并且没有明确的方法。在 FindFirstFile/FindNextFile 中,属性更清晰。
.net - 在没有毫秒和 gmt 的情况下将 DateTime 序列化为时间
我使用 XSD 文件作为输入创建了一个 C# 类文件。我的一个属性如下所示:
序列化后,文件的内容现在如下所示:
是否有可能,在属性上使用 XmlAttributes,让它在没有毫秒和 GMT 值的情况下呈现?
这是可能的,还是在类被序列化后我需要将某种 xsl/xpath-replace-magic 组合在一起?
这不是将对象更改为 String 的解决方案,因为它在应用程序的其余部分中用作 DateTime,并允许我们使用 XmlSerializer.Serialize() 方法从对象创建 xml 表示。
我需要从字段中删除额外信息的原因是接收系统不符合时间数据类型的 w3c 标准。
.net - InternalsVisibleTo 属性不起作用
我正在尝试使用InternalsVisibleTo
程序集属性使 .NET 类库中的内部类对我的单元测试项目可见。出于某种原因,我不断收到一条错误消息,上面写着:
'MyClassName' 由于其保护级别而无法访问
两个程序集都已签名,并且我在属性声明中列出了正确的密钥。有任何想法吗?