从 CLR 样式类型全名获取 C# 样式类型引用

2024-04-07

给定通过反射找到的 .NET 类型对象,是否可以将此类型漂亮地打印或反编译为 C# 声明,同时考虑到 C# 类型别名等?

例如,

Int32 -> int
String -> string   
Nullable<Int32> -> int?
List<au.net.ExampleObject> -> List<ExampleObject>

我希望能够打印出接近源代码中最初编写的方法。

如果.NET框架中没有任何东西,是否有第三方库?我可能会看看ILSpy http://wiki.sharpdevelop.net/ilspy.ashx.


See this https://stackoverflow.com/questions/2459577/generating-code-is-there-an-easy-way-to-get-a-proper-string-representation-of/2459614#2459614 answer.

Example:

using System.CodeDom;
using System.CodeDom.Compiler;

CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");

var typeRef = new CodeTypeReference("System.Nullable`1[System.Int32]");
string typeOutput = provider.GetTypeOutput(typeRef); // "System.Nullable<int>"

它将帮助您int and string-类似的东西,以及泛型,但是你必须解决Nullable<T> -> T? and using是你自己。

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

从 CLR 样式类型全名获取 C# 样式类型引用 的相关文章

  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 找不到 assimp-vc140-mt.dll ASSIMP

    我已经从以下位置下载了 Assimp 项目http assimp sourceforge net main downloads html http assimp sourceforge net main downloads html Ass
  • 时间:2019-03-17 标签:c#ThreadSafeDeepCopy

    我一直在阅读很多其他问题以及大量谷歌搜索 但我一直无法找到明确的解决方案 根据我读过的一些最佳实践 类的静态方法应该创建线程安全的 并且实例成员应该将线程安全留给消费者 我想为该类实现深度复制方法 该类本身还有其他引用类型成员 有没有什么方
  • 类的成员复制

    在学习 复制成员 概念时 书中给出了如下说法 此外 如果非静态成员是引用 const 或没有复制赋值的用户定义类型 则无法生成默认赋值 我不太明白这个声明到底想传达什么 或者说这个说法指的是哪一种场景 谢谢 该语句与编译器自动为您编写的类
  • 如何从文本文件读取整数到数组

    这就是我想做的 我对此有些不满 但我希望你能容忍我 这对我来说是一个非常新的概念 1 在我的程序中 我希望创建一个包含 50 个整数的数组来保存来自文件的数据 我的程序必须获取用户的文档文件夹的路径 2 文件的名称为 grades txt
  • AES 输出是否小于输入?

    我想加密一个字符串并将其嵌入到 URL 中 因此我想确保加密的输出不大于输入 AES 是可行的方法吗 不可能创建任何始终会创建比输入更小的输出的算法 但可以将任何输出反转回输入 如果您允许 不大于输入 那么基本上您只是在谈论同构算法alwa
  • 无法在内存位置找到异常源:cudaError_enum

    我正在尝试确定 Microsoft C 异常的来源 test fft exe 中 0x770ab9bc 处的第一次机会异常 Microsoft C 异常 内存位置 0x016cf234 处的 cudaError enum 我的构建环境是 I
  • 运行选定的代码生成器时出错:“未将对象引用设置到对象的实例。”错误?

    我已经尝试了所有解决方案 例如修复 VS 2013 但没有用 当您通过右键单击控制器文件夹来创建控制器并添加控制器时 然后右键单击新创建的控制器的操作并选择添加视图 当我尝试创建视图时 就会发生这种情况 它不是一个新项目 而是一个现有项目
  • 我可以让 ungetc 取消阻止阻塞的 fgetc 调用吗?

    我想在收到 SIGUSR1 后使用 ungetc 将 A 字符重新填充到标准输入中 想象一下我有充分的理由这样做 调用 foo 时 stdin 中的阻塞读取不会被收到信号时的 ungetc 调用中断 虽然我没想到它会按原样工作 但我想知道是
  • IEnumerable.Except 不起作用,那么我该怎么办?

    我有一个 linq to sql 数据库 非常简单 我们有 3 个表 项目和用户 有一个名为 User Projects 的连接表将它们连接在一起 我已经有了一个获得的工作方法IEnumberable
  • 使用restsharp序列化对象并将其传递给WebApi而不是序列化列表

    我有一个看起来像的视图模型 public class StoreItemViewModel public Guid ItemId get set public List
  • 新任务中使用的依赖注入服务

    我在需要时使用依赖项注入来访问我的服务 但我现在想要创建一个并发任务 但这会由于依赖项注入对象及其生命周期而导致问题 我读过这篇文章 标题 防止多线程 Link http mehdi me ambient dbcontext in ef6
  • cout 和字符串连接

    我刚刚复习了我的 C 我尝试这样做 include
  • 每个数据库多个/单个 *.edmx 文件

    我有一个通过 ADO net 数据服务与数据库交互的项目 数据库很大 近 150 个具有依赖关系的表 该项目几年前开始 当时使用的是数据集 现在我们正在转向实体模型关系 由于我们添加了更多需要使用的表 该模型正在不断增长 这是管理这一切的正
  • 如何在 DropDownList 中保留空格 - ASP.net MVC Razor 视图

    我在视图中通过以下方式绑定我的模型 问题是我的项目文本是格式化文本 单词之间有空格 如下所示 123 First 234 00 123 AnotherItem 234 00 123 Second 234 00 我想保留此项目文本中的空格 即
  • 在简单注入器中解析具有自定义参数的类

    我正在使用以下命令创建 WPF MVVM 应用程序简易注射器作为 DI 容器 现在 当我尝试从简单注入器解析视图时遇到一些问题 因为我需要在构造时将参数传递到构造函数中 而不是在将视图注册到容器时 因此这不是适用的 简单注入器将值传递到构造
  • 使我的 COM 程序集调用异步

    我刚刚 赢得 了在当前工作中维护用 C 编码的遗留库的特权 这个dll 公开使用 Uniface 构建的大型遗留系统的方法 除了调用 COM 对象之外别无选择 充当此遗留系统与另一个系统的 API 之间的链接 在某些情况下 使用 WinFo
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959

随机推荐

  • 在tkinter中生成点击事件

    我正在尝试对我的 tkinter GUI 进行单元测试 因此我尝试从单独的线程生成点击事件 下面是测试 Tkinter Button 的示例 import unittest threading from Tkinter import cla
  • 我的枚举可以有友好的名称吗? [复制]

    这个问题在这里已经有答案了 我有以下内容enum public enum myEnum ThisNameWorks This Name doesn t work Neither does this 是不是不可能有enum带有 友好名称 你可
  • PHP如何获取基域/url?

    function url if isset SERVER HTTPS protocol SERVER HTTPS SERVER HTTPS off https http else protocol http return protocol
  • 删除文本文件 php 中的一行[重复]

    这个问题在这里已经有答案了 所以我的想法是使用正则表达式在文本文件中查找特定行 然后用空白替换该行 实质上将其删除 但是 我正在努力在文本文件中重写带有空白的行 elseif inquiry delete file fopen databa
  • 使用 getopt 时“for i”没有“in [sequence]”结尾

    我找到了在 shell 中使用 getopt 命令的示例脚本 bin bash args getopt ab set args for i do case i in a shift echo it was a b shift echo it
  • RNC 中交织

    我有三个具有不同属性值的 p 的源代码 我尝试对元素进行任意顺序以及一个强制元素 p class paragraph1 即任意数量的第 1 段 第 2 段和第 3 段 按任意顺序 但必须至少有一个段落 1 下面我尝试了 RNC 中的交错选项
  • PDF Tm 运算符

    我试图突出显示 PDF 文档中的文本 但我发现了一个带有以下操作数的 Tm 运算符 0 7 98 7 98 0 90 8898 715 4183 Tm Tm 运算符应该仅在其操作数上替换文本矩阵和文本行矩阵 根据Pdf Reference
  • 如何使用.NET设置文件夹权限?

    是否可以使用小型 NET 页面来设置其所在服务器上某些文件夹的文件夹权限 可用于此目的的代码或对象是什么 我使用的是 Windows Server 2003 基本上我想使用 GET 或 POST 访问页面并运行它并检查和 或更新文件夹的权限
  • Delphi Datasnap ISAPI 模块上的 CORS 问题

    我们在 AngularJS 客户端访问 Datasnap REST Delphi 10 1 Berlin 服务器时遇到问题 我无法激活授权 因为 Angular 无法在 Pragma 标头中发送 dssession 这似乎是 CORS 的问
  • 如何处理时间耦合?

    我正因为这个而挣扎 我的类有一些具有时间耦合的方法 这是一些方法MethodA必须首先调用来 初始化 数据MethodB需要正常工作 我通常通过将有问题的依赖传递给 方法B 作为论据 就像这个片段中一样 private class Some
  • vue组件名必须小写?

    我正在尝试在我的视图文件中使用一个组件 以下不起作用 当我尝试在我的视图中安装组件时
  • 根据列表从表中选择行

    我有这张表 col1 lt c 1 2 3 4 5 col1 lt sample col1 1000 replace TRUE prob c 0 2 0 2 0 2 0 2 0 2 col2 lt c 6 7 8 col2 lt sampl
  • 使用 StreamWriter 将行附加到文件

    我想将行附加到我的文件中 我正在使用 StreamWriter StreamWriter file2 new StreamWriter c file txt file2 WriteLine someString file2 Close 我的
  • cscope 或 ctags 为什么选择其中之一? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我主要使用 vim gvim 作为编辑器 并且正在考虑结合使用lxr Linux 交叉参考 http
  • 使用 CMake 添加仅标头依赖项

    我有一个简单的项目 需要三个仅头文件库才能编译 网络套接字 https github com zaphoyd websocketpp spdlog https github com gabime spdlog and 恩洛曼 json ht
  • Visual Studio 2015 IIS Express 500 错误

    我有一个 ASP Net 网站项目 我正在将其迁移到 Net 4 6 1 我已经安装了 Visual Studio 2015 Community 并且已成功编译并构建了网站及其组件 DLL 当我尝试使用 IIS Express 通过 F5
  • 如何使用循环将字符串连接成一个?

    有人可以帮我解决字符串连接问题吗 我从寄存器读取数据 它的函数 utf regAddr length 我得到带有十进制数字的表格 然后将其转换为十六进制并循环字符串 我需要将这些字符串连接成一个 Lua中没有像 这样的操作符 functio
  • 在 Lisp 解释过程中,“读者”的任务是什么?

    我想知道 读者 在解释 编译 Lisp 程序期间的目的 或者更准确地说 是 读者 的任务 从我刚刚完成的问题前研究来看 在我看来 读者 特别是本例中的 Clojure 可以被视为 语法预处理器 它的主要职责是读取器宏和原始形式的扩展 所以
  • 通过引用传递 - 为什么调用这个析构函数?

    我找不到 在关于析构函数调用主题的许多问题中 任何与我的情况完全相同的问题 当传递的参数是引用时 为什么会调用析构函数 我将注释 主要在 main 中 放在我认为执行输出的代码行下 struct X simple test class in
  • 从 CLR 样式类型全名获取 C# 样式类型引用

    给定通过反射找到的 NET 类型对象 是否可以将此类型漂亮地打印或反编译为 C 声明 同时考虑到 C 类型别名等 例如 Int32 gt int String gt string Nullable