C#:如何使用类型转换器本地化枚举

2023-11-25

阅读后我试图了解如何使用类型转换器这个答案我的其他问题之一。但我不确定我是否完全明白...

在我的特定情况下,我想通过根据枚举成员是什么来获取资源字符串,将枚举成员“转换”为本地化字符串。例如,如果我有这个枚举:

public enum Severity
{
    Critical,
    High,
    Medium,
    Low
}

or this:

public enum Color
{
    Black = 0x0,
    Red = 0x1,
    Green = 0x2,
    Blue = 0x4,
    Cyan = Green | Blue,
    Magenta = Red | Blue,
    Yellow = Red | Green,
    White = Red | Green | Blue,
}

我将如何创建一个可以将这些成员转换为本地化字符串的类型转换器?我该如何使用它?目前我需要在 WinForms 应用程序中使用它,但也欢迎更一般的示例。


要创建 TypeConverter,只需创建一个继承自 TypeConverter 的类即可。然后你使用类型转换器属性标记您的类,以便每当有人尝试对您的类进行转换操作时,您的 TypeConverter 就会被调用。

一旦继承了 TypeConverter,您应该重写它的一些方法来执行您想要的操作。您可能想首先查看 ConvertFrom()、ConvertTo() 和 ConvertToString() - 您可以在其中实现提取字符串本地化版本的逻辑。

要使用 TypeConverter,您需要编写如下代码:

var foo = TypeDescriptor.GetConverter(typeof(T));
var mystring = foo.ConvertToString(myObject));

MSDN当然有文档和一些示例TypeConverter 的实现。

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

C#:如何使用类型转换器本地化枚举 的相关文章

  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6
  • asp.net 文本框文本模式数字,仅允许数字

    我只是想知道 ASP NET 中是否有一种方法只允许文本框中的数字textmode number 当我使用这个时
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 使用具有现有访问令牌的 Google API .NET 客户端

    用例如下 移动应用程序正在通过 Google 对用户进行身份验证 并且在某些时候 我们需要将用户的视频发布到他的 YouTube 帐户 出于实际原因 实际发布应该由后端完成 已经存储在那里的大文件 由于用户已经通过应用程序的身份验证 因此应
  • 向 ExpandoObject 添加方法时,“关键字 'this' 在静态属性、静态方法或静态字段初始值设定项中无效”

    我尝试向 ExpandoObject 添加一个动态方法 该方法将返回属性 动态添加 给它 但它总是给我错误 我在这里做错了什么吗 using System using System Collections Generic using Sys
  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab
  • 使用post方法将多个参数发送到asp.net core 3 mvc操作

    使用 http post 方法向 asp net mvc core 3 操作发送具有多个参数的 ajax 请求时存在问题 参数不绑定 在 dot net 框架 asp net web api 中存在类似的限制 但在 asp net mvc
  • 如何使用recv()检测客户端是否仍然连接(并且没有挂起)?

    我写了一个多客户端服务器程序C on SuSE Linux 企业服务器 12 3 x86 64 我为每个客户端使用一个线程来接收数据 我的问题是 我使用一个终端来运行服务器 并使用其他几个终端来运行服务器telnet到我的服务器 作为客户端
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • Qt 创建布局并动态添加小部件到布局

    我正在尝试在 MainWindow 类中动态创建布局 我有四个框架 它们是用网格布局对象放置的 每个框架都包含一个自定义的 ClockWidget 我希望 ClockWidget 对象在调整主窗口大小时相应地调整大小 因此我需要将它们添加到
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 为什么我不应该对不是由 malloc() 分配的变量调用 free() ?

    我在某处读到 使用它是灾难性的free删除不是通过调用创建的对象malloc 这是真的 为什么 这是未定义的行为 永远不要尝试它 让我们看看当您尝试时会发生什么free 自动变量 堆管理器必须推断出如何获取内存块的所有权 为此 它要么必须使
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • System.Runtime.InteropServices.COMException(0x80040154):[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 C 项目中遇到异常 System Runtime InteropServices COMException 0x80040154 检
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 双精度类型二维多维数组的 pinvoke 编组作为 c# 和 c++ 之间的输入和输出

    我有以下我正在尝试解决的双物质类型的 2d 多维数组的 c 和 c pinvoke 编组 我已经查看了以下热门内容以获得我目前拥有的内容使用双精度数组进行 P Invoke 在 C 和 C 之间编组数据 https stackoverflo

随机推荐

  • OSX 10.9.2 上的 Java 1.7 作为 1.5 运行?

    为这件事揪着我的头发 java version and javac version两者都报告相同的 1 7 0 45 但是当我尝试编译最简单的类时 我收到一个类文件错误 gt cat A java public class A gt jav
  • 带有语句主体的 lambda 表达式无法转换为 nopCommerce 中的表达式树 [重复]

    这个问题在这里已经有答案了 我尝试在 nopCommerce 3 0 中创建 linq 联接查询 我在 linq 中加入两个表并写入 代码成功 但视觉工作室智能感知显示错误 例如 带有语句体的 lambda 表达式无法转换为表达式树 请看下
  • 为什么需要“-lpthread”?

    所以我的问题是 为什么在编译命令末尾需要 lpthread 为什么这个命令有效 gcc o name name c lpthread 但这不会 gcc o name name c 我在我的 C 代码中使用 pthread h 库 我已经在网
  • Jersey 客户端上传进度

    我有一个球衣客户端 需要上传一个足够大的文件以需要进度条 问题是 对于需要几分钟的上传 我看到传输的字节数达到 100 申请一开始 然后需要几分钟时间来打印 on finish 字符串 就好像字节被发送到缓冲区 我正在读取传输到缓冲区的速度
  • 如何修复 Vue3 客户端版本的“unsafe-eval”错误?

    我在我的应用程序中使用 Express cors 和头盔 Vue3仅在客户端使用 库文件自托管在public文件夹中 我只是做 将模块添加到客户端 问题是当我使用它时 它总是给我一个Uncaught EvalError Refused to
  • Java 中文件存在的锁定

    简洁版本 为什么要File createNewFile 不能用于文件锁定 或者更具体地说 如果使用它来锁定应用程序数据目录是否会出现问题 Details 我想使用锁定文件来保护我的应用程序数据目录 如果该文件lock存在 目录被锁定 应用程
  • SqlBulkCopy 从列表 <>

    如何使用 SqlBulkCopy 从简单对象的 List 中进行大量插入 我是否实现自定义 IDataReader With 快速会员 您可以做到这一点 而无需通过DataTable 在我的测试中 性能提高了一倍多 using var bc
  • 如何在我的应用程序中手动包含 VCL 样式?

    我有一个应用程序 它使用条件能够将其编译为 VCL 表单应用程序或 Delphi XE2 中的 Windows 服务应用程序 但是 由于我手动更改了项目的主源文件 IDE 将不再允许我使用标准项目选项窗口进行某些修改 具体来说 我无法选择要
  • 如何在 string.replace 中输入正则表达式?

    我需要一些关于声明正则表达式的帮助 我的输入如下 this is a paragraph with lt 1 gt in between and then there are cases where the lt 99 gt number
  • XMLHttpRequest upload.onprogress 立即完成

    我正在尝试使用 HTML5 制作一个带有进度表的文件上传器 这是我的代码
  • C++/CLI:相对于 C# 的优势

    与 C 相比 托管 C CLI 有什么主要优势吗 绝对不是我认为的语法 因为 C CLI 中的以下代码非常丑陋 C CLI 代码 Out List
  • 日志方法之间的区别

    我是 android 新手 我使用以下方法打印 log cat Log w Tag String text 并记录文本打印 但经过一段时间的搜索后 我找到了更多打印 logcat 的方法 例如 Log v Log d 现在我对这些方法感到困
  • 跨 JavaEE Web 服务使用单个 MongoClient

    在阅读了 mongo 文档后 该文档说 MongoClient 的每个实例都处理自己的池 我该如何在整个应用程序中只拥有一个实例呢 这看起来可能是使用单例 bean 的场景 但这似乎会违背连接池的目的 如果一次只有一个用户能够访问包含 Mo
  • 传递给 pytest 夹具的参数可以作为变量传递吗?

    我有两个简单的测试设置 我试图将它们分组到一个夹具中 并希望测试函数将 参数 传递给夹具 这是一个人为的例子 来解释我的问题 假设我有以下 pytest 夹具 pytest fixture scope module params param
  • DataTable.Select日期格式问题

    我正在使用 DataTable Select 在日期范围内过滤数据表 我的条件字符串是 CreatedOn gt 03 11 2009 00 00 00 AND CreatedOn lt 03 11 2009 23 59 00 此过滤器不返
  • UnicodeEncodeError:“ascii”编解码器无法对特殊名称的字符进行编码[重复]

    这个问题在这里已经有答案了 我的 python 版本 2 7 脚本运行良好 可以从本地 html 文件获取一些公司名称 但是当涉及到某些特定的国家 地区名称时 它会给出此错误 UnicodeEncodeError ascii 编解码器无法编
  • rgba 在 IE9 中不工作

    由于某种原因 我无法使用 IE9 在 CSS 中使用 rgba 我已经使用 Chrome 进行了测试 效果很好 不知道出了什么问题 我的 HTML 是
  • Eclipse + Maven:强制执行环境“JavaSE-1.6”而不是固定的JDK

    我使用 Eclipse 作为 IDE 并在其外部使用 Maven 以使所有依赖项保持最新并更新 Eclipse 项目 在 Eclipse 中 我通常指定 JRE 系统库作为任何 Java 项目的执行环境 通常是 JavaSE 1 6 在 p
  • CSS 将文本旋转 n 度,但不旋转边界框?

    我知道 CSStransform rotate属性 以及用于制作有角度的方法div元素 但有一个非常重要的设计元素我无法在任何地方找到解决 如何保持边界框的角度 当我创建有角度的 div 元素时 我使用一个旋转的包装元素n度数 然后是子元素
  • C#:如何使用类型转换器本地化枚举

    阅读后我试图了解如何使用类型转换器这个答案我的其他问题之一 但我不确定我是否完全明白 在我的特定情况下 我想通过根据枚举成员是什么来获取资源字符串 将枚举成员 转换 为本地化字符串 例如 如果我有这个枚举 public enum Sever