如何从自定义属性中确定附加类型?

2023-11-23

我有一个可以分配给一个类的自定义属性,[FooAttribute]。我想做的是,从属性内部确定哪种类型实际使用了我。例如如果我有:

[FooAttribute]
public class Bar
{
}

在 FooAttribute 的代码中,如何确定是 Bar 类添加了我?我并不是专门寻找 Bar 类型,我只是想使用反射设置一个友好的名称。例如

[FooAttribute(Name="MyFriendlyNameForThisClass")]
public class Bar
{
}

public class FooAttribute()
{
  public FooAttribute()
  {
    // How do I get the target types name? (as a default)
  }
}

首先,您可能会考虑现有的[DisplayName]用于保留友好的名称。正如已经介绍过的,您根本无法在属性内获取此信息。您可以从 Bar 查找属性,但一般来说,从属性执行此操作的唯一方法是传递类型into属性 - 即

[Foo("Some name", typeof(Bar)]

你到底想做什么?可能还有其他选择...

请注意,对于 i18n、resx 等;你可以子类化DisplayNameAttribute并通过覆盖提供从键的查找DisplayName getter.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从自定义属性中确定附加类型? 的相关文章

  • 关于逻辑/算法的想法以及如何防止线程写入 Sql Server 中的竞争

    我有以下逻辑 public void InQueueTable DataTable Table int incomingRows Table Rows Count if incomingRows gt RowsThreshold async
  • EntityHydrate 任务失败

    我最近安装了 Visual Studio 11 Beta 和 Visual Studio 2010 之后 我无法在 Visual Studio 2010 中构建依赖于 PostSharp 的项目 因此我卸载了 Visual Studio 1
  • Boost ASIO 串行写入十六进制值

    我正在使用 ubuntu 通过串行端口与设备进行通信 所有消息都必须是十六进制值 我已经在 Windows 环境中使用白蚁测试了通信设置 并得到了我期望的响应 但在使用 Boost asio 时我无法得到任何响应 以下是我设置串口的方法 b
  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • 如何向 Mono.ZeroConf 注册服务?

    我正在尝试测试 ZeroConf 示例http www mono project com Mono Zeroconf http www mono project com Mono Zeroconf 我正在运行 OpenSuse 11 和 M
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 为什么这个 makefile 在“make clean”上执行目标

    这是我当前的 makefile CXX g CXXFLAGS Wall O3 LDFLAGS TARGET testcpp SRCS main cpp object cpp foo cpp OBJS SRCS cpp o DEPS SRCS
  • if constexpr 中的 not-constexpr 变量 – clang 与 GCC

    struct A constexpr operator bool const return true int main auto f auto v if constexpr v A a f a clang 6 接受该代码 GCC 8 拒绝它
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • 来自嵌入图像的 BitmapSource

    我的目标是在 WPF 窗口上重写 OnRender 方法中绘制图像 someImage png 它是嵌入资源 protected override void OnRender System Windows Media DrawingCont
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • Unity c# 四元数:将 y 轴与 z 轴交换

    我需要旋转一个对象以相对于现实世界进行精确旋转 因此调用Input gyro attitude返回表示设备位置的四元数 另一方面 这迫使我根据这个四元数作为默认旋转来计算每个旋转 将某些对象设置为朝上的简单方法如下 Vector3 up I
  • 对于 C# Express 用户来说,有哪些好的工具可以识别可能重复的代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 也可以看看 有什么工具可以检查重复的 VB NET 代码吗 https stackoverflow c
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • .NET 和 Mono 之间的开发差异

    我正在研究 Mono 和 NET C 将来当项目开发时我们需要在 Linux 服务器上运行代码 此时我一直在研究 ASP NET MVC 和 Mono 我运行 Ubuntu 发行版 想要开发 Web 应用程序 其他一些开发人员使用 Wind
  • C++ 指针引用混淆

    struct leaf int data leaf l leaf r struct leaf p void tree findparent int n int found leaf parent 这是 BST 的一段代码 我想问一下 为什么
  • C:设置变量范围内所有位的最有效方法

    让我们来int举个例子 int SetBitWithinRange const unsigned from const unsigned to To be implemented SetBitWithinRange应该返回一个int其中所有
  • 如何编写一个接受 int 或 float 的 C 函数?

    我想用 C 语言创建一个扩展 Python 的函数 该函数可以接受 float 或 int 类型的输入 所以基本上 我想要f 5 and f 5 5 成为可接受的输入 我认为我不能使用if PyArg ParseTuple args i v
  • 如果将变量设置为等于新对象,旧对象会发生什么?

    假设我们有一个 X 类not有一个超载的operator 功能 class X int n X n 0 X int n n n int main X a 1 an object gets constructed here more code
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调

随机推荐

  • 带有实时数据的 NVD3 折线图

    我有一个使用 NVD3 js 编写的非常简单的折线图 我写了一个基于计时器的简单重绘 从我见过的示例中提取 但出现错误 未捕获的类型错误 无法读取未定义的属性 y JS 是 var data key Long values getData
  • C++ 中 lambda 派生的隐式函子的生命周期是多少?

    问题很简单 当我编写 lambda 表达式时 C 编译器自动生成的函子对象的生命周期是多少 我进行了快速搜索 但找不到满意的答案 特别是 如果我将 lambda 传递到某个地方 并且它在那里被记住 然后我超出范围 那么一旦我的 lambda
  • 将 JSON 对象映射到 Swift 类/结构

    我需要 复制 从远程 Web API 服务以 JSON 格式返回的实体 它看起来像这样 field1 some id entity name Entity1 field2 some name details1 field1 11 field
  • Firebase 在 Android 适配器中添加监听器

    我对 firebase 还很陌生 我正在尝试了解它 我有一个正在注册的适配器ValueEventListener每次创建时 如果我不分离它 当我旋转手机并且适配器在片段中被破坏 重建时 侦听器是否会增加 或者 firebase 是否足够聪明
  • 如何使用 JSF 和导航规则创建带参数的 GET 请求?

    有没有办法使用 h outputLink 其他 JSF 标记或代码创建 html 链接 以创建带有请求参数的非 faces 请求 HTTP GET 例如我有以下导航规则
  • 从 F# 中具有 N 个不同索引的序列中取出 N 个元素

    我是 F 新手 正在寻找一个采用 N 索引和序列并给我 N 个元素的函数 如果我有 N 个索引 它应该等于 concat Seq nth index0 Seq nth index1 Seq nth indexN 但它应该只扫描序列中的 in
  • 当基础镜像为 centos 与 ubuntu:trusty 时,以 shell 形式运行 CMD/ENTRYPOINT 时,不同进程以 PID 1 运行

    使用以下 dockerfile 构建并运行图像 Dockerfile1 FROM ubuntu trusty ENTRYPOINT ping localhost 现在运行以下命令来查看容器中运行的进程 docker exec it
  • “String[]::new”是什么意思?

    我正在学习如何使用流 但我遇到了这个方法的问题 public static String inArray String array1 String array2 return Arrays stream array1 filter str
  • 何时使用 AtomicReference (Java)?真的有必要吗?

    我已经多次使用 AtomicLong 但我从未需要使用 AtomicReference 看来 AtomicReference 可以做到其中之一 我从另一个 stackoverflow 复制了这段代码 问题 public synchroniz
  • 从私钥生成 ssh 公钥

    我有私人 ssh id rsa 密钥 我如何从中生成公钥 选项 y输出公钥 来自linux手册ssh keygen命令 y 此选项将读取私有 OpenSSH 格式文件并打印 一个 到标准输出的 OpenSSH 公钥 ssh keygen y
  • Google Drive API v3:没有任何方法可以获取 google 文档的下载网址吗?

    Google Drive API v2 到 v3迁移指南 says ExportLinks 字段已从文件中删除 要导出 Google 文档 请改用 files export 方法 我不想立即导出 下载 文件 files export 实际上
  • 自动调整 JButton 图标大小

    所以我有一个 JButtons 我在其中添加了图标 图标最初太大 所以我事先调整了它们的大小 效果很好 除了当我调整窗口大小时 JButton 会更改大小 但图标不会更改 这是有问题的 有没有办法让图标只填充它所附加的 JButton 一些
  • 在 Node.js 中等待多个回调

    我有一个 Node js 应用程序 其中可能会调用多个函数 具体取决于多个因素 但在最后一个回调后仅调用最后一个函数 这是我得到的简化版本 if foo bar function1 arg1 function val1 doWhatever
  • WPF ListView 非活动选择颜色

    I m creating a WPF application where several ListView selections are made in a row similar to the iTunes browser The pro
  • 将函数应用于 pandas 数据框中的组

    我正在尝试将简单的函数应用于 pandas 中的组 我有这个数据框 我可以根据它进行分组type df pandas DataFrame id a b c d v 1 2 3 4 type X Y Y Y set index id df g
  • 有没有办法阻止在 R Shiny 中打开下载页面?

    在闪亮的应用程序中单击下载按钮后 将打开一个新页面来初始化下载 但是 我的下载处理程序需要一些时间来生成可下载文件 该文件显示在闪亮主页面的进度栏中 有没有办法让用户留在主页上或阻止下载页面打开或推迟下载页面直到文件生成为止 非常感谢 Ma
  • 笑话如何在 package.json 脚本中设置文件模式

    我在 package json 中有 scripts test cross env NODE ENV test jest 我想测试所有文件匹配模式 front test js but if scripts test cross env NO
  • firebase Android 应用程序无法使用移动数据

    每当我连接移动数据时 我的 Firebase Android 应用程序都无法运行 身份验证 数据库和存储等所有功能均无法访问 我目前在印度 使用 Aircel sim 卡 是 Firebase 服务器还是我的网络提供商的问题 logcat
  • 将纬度/经度转换为 R 中的海拔高度

    有谁知道 R 中是否有一个工具可以在给定纬度和经度的情况下查找某个位置的海拔高度 或者您可以使用从 geonames 查找的包 并从 srtm3 数字高程模型中获取值 首先通过注册获得 geonames 用户名geonames org 然后
  • 如何从自定义属性中确定附加类型?

    我有一个可以分配给一个类的自定义属性 FooAttribute 我想做的是 从属性内部确定哪种类型实际使用了我 例如如果我有 FooAttribute public class Bar 在 FooAttribute 的代码中 如何确定是 B