Marshal.GenerateGuidForType(Type) 和 Type.GUID 有什么区别?

2024-04-01

Type classType = typeof(SomeClass);
bool equal = Marshal.GenerateGuidForType(classType) == classType.GUID;

我还没有发现不符合这个条件的案例。

So 为什么以及何时我应该使用Marshal方法而不是简单地获取GUID财产?


see http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.generateguidfortype.aspx http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.generateguidfortype.aspx

... GenerateGuidForType provides the same functionality as the Type.GUID property.

所以根据文档它们是相同的。但是,Marshal.GenerateGuidForType 仅适用于 RuntimeType 对象,而 Type.GUID 也适用于某些其他 Type 实现。

E.g.:


using System;
using System.CodeDom;
using System.Runtime.InteropServices;
using System.Workflow.ComponentModel.Compiler;

namespace Samples
{
    class Program
    {
        static CodeCompileUnit BuildHelloWorldGraph()
        {
            var compileUnit = new CodeCompileUnit();
            var samples = new CodeNamespace("Samples");
            compileUnit.Namespaces.Add(samples);

            var class1 = new CodeTypeDeclaration("Class1");
            samples.Types.Add(class1);

            return compileUnit;
        }


        static void Main(string[] args)
        {
            var unit = BuildHelloWorldGraph();
            var typeProvider = new TypeProvider(null);
            typeProvider.AddCodeCompileUnit(unit);
            var t = typeProvider.GetType("Samples.Class1");
            Console.WriteLine(t.GUID); // prints GUID for design time type instance.
            Console.WriteLine(Marshal.GenerateGuidForType(t)); // throws ArgumentException.
        }
    }
}

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

Marshal.GenerateGuidForType(Type) 和 Type.GUID 有什么区别? 的相关文章

  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • JNI 将 Char* 2D 数组传递给 JAVA 代码

    我想从 C 代码通过 JNI 层传递以下指针数组 char result MAXTEST MAXRESPONSE 12 12 8 3 29 70 5 2 42 42 在java代码中我写了以下声明 public static native
  • 尝试使用 VS 2012 打开我的 asp.net 4.5 MVC Web 应用程序时出错。Asp.net 尚未在服务器上注册

    我有一个Windows Server 2012 R2 Visual Studio 专业版 2012 现在我用来开发 ASP NET 4 5 MVC 4 Web 应用程序 没有任何问题 但现在当我尝试打开该项目时 我会收到此错误 如果我单击
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 堆栈是向上增长还是向下增长?

    我在 C 中有这段代码 int q 10 int s 5 int a 3 printf Address of a d n int a printf Address of a 1 d n int a 1 printf Address of a
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include
  • 为boost python编译的.so找不到模块

    我正在尝试将 C 代码包装到 python 中 只需一个类即可导出两个函数 我编译为map so 当我尝试时import map得到像噪音一样的错误 Traceback most recent call last File
  • 如何使用 C++11 using 语法键入定义函数指针?

    我想写这个 typedef void FunctionPtr using using 我该怎么做呢 它具有类似的语法 只不过您从指针中删除了标识符 using FunctionPtr void 这是一个Example http ideone
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string

随机推荐

  • 如何在angularjs中从模板html调用指令

    Html 在这个 html 模板文件中 我必
  • 如何在 numba 中调用 `@guvectorize` 内的 `@guvectorize`?

    我正在尝试打电话 guvectorize里面一个 guvectorize但我有一个错误说 Untyped global name regNL nb cannot determine Numba type of
  • .htaccess r=301 与 r=302

    我正在我的 htaccess 中为移动设备或坏页面等创建规则 我正在使用这些规则 rewriterules badpage goodpage html r 302 rewriterules iphone iphone html r 301
  • 具有动态测试数量的 JUnit 测试

    在我们的项目中我有几个JUnit http www junit org 测试例如从目录中取出每个文件并对其运行测试 如果我实施一个testEveryFileInDirectory方法中的TestCase这显示为只有一项可能失败或成功的测试
  • Gradle 将下载的 jar 存储在本地文件系统的什么位置

    Gradle如何将下载的jar文件存储在本地文件系统上 Maven 将它们存储在 m2目录下USER HOME 但是 Gradle 将它们存储在哪里 我检查了 gradle文件夹那里 但只看到编译的脚本 在 Mac Linux 和 Wind
  • 使用可变数量参数的动态调用中的受控异常处理

    In a 昨天的话题已解决 https stackoverflow com questions 9726032 puzzle involving unwound stacks on dynamic invoke 9750323 hvd 向我
  • C 中取消引用和括号引用的操作顺序

    If I do ptr x 这相当于 ptr x or ptr x ptr x See the 维基百科运算符优先级表 http en wikipedia org wiki Order of operations Programming l
  • 为 Django 查询强制使用 INNER JOIN

    这是我的架构 城市 gt 摄影师 我正在尝试获取至少拥有一名摄影师的城市列表 并返回这些城市的摄影师数量 这是我正在使用的查询集 City objects annotate photographer count aggregates Cou
  • User.config是如何创建以及如何使用的

    我开始阅读有关配置文件的内容 并阅读有关 user config 的内容 谷歌搜索了一下 但找不到它是如何创建以及如何使用的 另请注意 将为每个用户创建一个单独的 user config 甚至阅读 StackOverflow 中的问题 但它
  • iOS10应用关闭时如何响应本地通知?

    当应用程序完全关闭 不在后台 时如何响应本地通知 当应用程序在后台或前台运行时 一切正常 但是当应用程序关闭并且我试图回复通知时 仅 application didFinishLaunchingWithOptions 被呼叫 userNot
  • python中带注释的双向条形图plotly

    我有一个带有玩具版本的 pandas 数据集 可以用它创建 creating a toy pandas dataframe s1 pd Series dont have a mortgage 31 8 have mortgage 15 65
  • 从 Boost 多索引迭代器获取数字索引

    我正在存储以下一堆内容 struct Article std string title unsigned db id id field in MediaWiki database dump 在 Boost MultiIndex 容器中 定义
  • 如何将图像旁边的文本垂直居中

    无论我做什么 我都无法使镜头在图像旁边垂直居中 有什么想法吗 我已经搜索过但没有结果 任何帮助将不胜感激 谢谢 您可能需要扩大结果窗口才能看到我在说什么 FIDDLE http jsfiddle net mbM7C 4 HTML div c
  • 使用 Twilio 发送群组消息

    有没有办法使用 twilio 向群组线程发送消息 我不希望每个收件人都有一个单独的线程 其中包含发送消息的 twilio 号码 感谢您的任何建议 来自 Twilio 的 Ricky 在这里 您无法按照您所描述的方式进行设置 但我们确实有一篇
  • 如何在 IIS 10 上配置缓存?

    我有一个网站 并且启用了缓存 如下所示 为服务器启用缓存 为我正在测试的网站启用缓存 在响应标头中 我将整个网站的网页内容过期时间设置为 30 天 没有针对任何特定文件夹的设置 为文件 css js png woff2 启用缓存 在 Chr
  • 在 Kotlin 中为 API 级别小于或等于 16 创建 Date 对象

    这听起来可能非常有趣和基本 但我正在努力通过将纪元到它的秒数传递给 Kotlin 来创建 DateTime 类型的对象 我得到的示例要么是需要 API 级别 26 的库 要么只是讨论从 DD MM YYYY 字符串到其他字符串的格式转换 到
  • 使用单元格按钮操作传递多个参数

    NOTE 我不需要任何关于使用 UITableview 的 didselect 委托发送数据的建议 myButton h import
  • 在 UITableView 中保留占位符单元格

    我有一个 UITableView 我永远不想低于 1 个单元格 它是一个目录读数 如果目录中没有文件 它有一个单元格显示 无文件 在编辑模式下 有一个用于创建文件的奖励单元格 因此编辑模式永远不会低于两个单元格 可能只是睡眠不足让我现在无法
  • 避免在 sweave/pgfsweave 编译期间显示数字

    使用 sweave pgfsweave 进行编译时 每次在 R 中创建图形时 它都会显示在图形窗口中 在 sweave 编译过程中 这在许多情况下很有帮助 因为我可以在编译文档时看到图形的样子 但是当我通过 ssh 编译一个大文档时 这可能
  • Marshal.GenerateGuidForType(Type) 和 Type.GUID 有什么区别?

    Type classType typeof SomeClass bool equal Marshal GenerateGuidForType classType classType GUID 我还没有发现不符合这个条件的案例 So 为什么以