Tag: guid

在C#中使用ComImport,如何在shell32.dll中找到像IFileDialog这样的类的GUID?

我一直在尝试使用ComImport为我正在编写的C#应用​​程序设置一些与各种dll中的win32类的互操作。 我不明白你是如何找到class级的GUID的? 我找到了一些有效的导入示例,但我不确定作者是如何找到类的GUID的。 下面列出了导入IFileDialog及其方法之一的示例。 [ComImport(), Guid(“42F85136-DB7E-439C-85F1-E4075D135FC8”), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IFileDialog { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)] [PreserveSig()] uint Show([In, Optional] IntPtr hwndOwner); //IModalWindow 我正在使用Visual Studio 2012,我可以看到如何在COM选项卡上的Microsoft Shell控件和自动化中添加对shell32.dll的引用,但这似乎对我没有任何作用。 我在这里想念的是什么? 你在哪里找到GUID? 有没有办法让Visual Studio生成上面列出的代码,或者我是否需要找到每个类的GUID,然后编写上面列出的方法导入?

如何使用objectGUID获取DirectoryEntry?

我知道,我们可以像这样得到一个DirectoryEntry: string conPath = “LDAP://10.0.0.6/DC=wds,DC=gaga,DC=com”; string conUser = “administrator”; string conPwd = “Iampassword”; DirectoryEntry de = new DirectoryEntry(conPath, conUser, conPwd, AuthenticationTypes.Secure); 我们可以像这样更改用户的密码: DirectorySearcher deSearch = new DirectorySearcher(); deSearch.SearchRoot = de; deSearch.Filter = String.Format(“sAMAccountName={0}”, “xumai”); SearchResultCollection results = deSearch.FindAll(); foreach (SearchResult objResult in results) { DirectoryEntry obj = objResult.GetDirectoryEntry(); obj.Invoke(“setPassword”, new object[] { “Welcome99” }); obj.CommitChanges(); […]

从int创建一个Guid

给定一个int ,你怎么能反复创建同一个Guid? 编辑: 我正在集成两个系统,一个使用int作为主键,另一个通过它的Guid识别一个对象。 因此,我需要能够为给定的int重新创建相同的Guid,以便第二个系统可以识别来自第一个的实体。

为什么Guid.ToString(“n”)与从同一guid的字节数组生成的hex字符串相同?

考虑以下unit testing: [TestMethod] public void TestByteToString() { var guid = new Guid(“61772f3ae5de5f4a8577eb1003c5c054”); var guidString = guid.ToString(“n”); var byteString = ToHexString(guid.ToByteArray()); Assert.AreEqual(guidString, byteString); } private String ToHexString(Byte[] bytes) { var hex = new StringBuilder(bytes.Length * 2); foreach(var b in bytes) { hex.AppendFormat(“{0:x2}”, b); } return hex.ToString(); } 这是结果: Assert.AreEqual failed. Expected:. Actual:.

如何将null设置为GUID属性

我有一个Employee类型的对象,它有一个Guid属性。 我知道如果我想设置为null我必须将我的type属性定义为Nullable prop或Guid? 支柱。 但在我的情况下,我无法改变道具的类型,所以它将保持为Guid类型和我的同事,我们不想使用Guid.Empty。 有没有办法将我的属性设置为null或string.empty,以便将数据库中的字段重新设置为null。 我有一个从string.empty转换为null的机制,但如果将更改为接受空guid为null,我将更改许多内容。 请帮忙!

将byte 或object转换为GUID

我为对象数据类型分配了一些值,比如 object objData =dc.GetDirectoryEntry().Properties[“objectGUID”].Value; 这个对象重新调整像{byte[16]} [0]: 145 [1]: 104 [2]: 117 [3]: 139 [4]: 124 [5]: 15 [6]: 255 [7]: 68 [8]: 142 [9]: 159 [10]: 208 [11]: 102 [12]: 148 [13]: 157 [14]: 179 [15]: 75 然后我将这个对象转换为byte [],就像 byte[] binaryData = objData as byte[]; 它也将返回如{byte[16]} [0]: 145 [1]: 104 [2]: 117 [3]: 139 [4]: […]

Guid.NewGuid()返回重复?

我们有一个应用程序为我们的某个服务生成模拟数据以进行测试。 每个数据项都有一个唯一的Guid。 但是,当我们在模拟器的一些次要代码更改后运行测试时,它生成的所有对象都具有相同的Guid。 创建了一个数据对象,然后是一个for循环,其中对象的属性被修改,包括一个新的唯一Guid,它通过远程处理发送到服务(可序列化,而不是编组,如果这就是你’思考),循环再做,等等。 如果我们在循环中放入一个小的Thread.Sleep(…),它会生成唯一的id。 我认为这是一个红鲱鱼。 我创建了一个测试应用程序,刚刚创建了一个guid,并没有得到一个副本。 我的理论是IL以一种导致这种行为的方式进行了优化。 但足够我的理论。 你怎么看? 我愿意接受测试的建议和方法。 更新:我的问题似乎有很多混乱,所以让我澄清一下。 我不认为NewGuid()被破坏了。 显然它有效。 没关系! 但是在某处有一个bug会导致NewGuid():1)在我的循环中只调用一次2)在我的循环中每次调用但只分配一次3)其他我没有想过的东西 这个bug可能出现在我的代码中(可能是MOST)或者在某个地方进行优化。 所以重申我的问题,我应该如何调试这个场景? (谢谢你的精彩讨论,这真的帮助我澄清了我心中的问题) 更新#2:我想发布一个显示问题的例子,但那是我问题的一部分。 我不能在整套应用程序(客户端和服务器)之外复制它。 这是一个相关的片段: OrderTicket ticket = new OrderTicket(… ); for( int i = 0; i < _numOrders; i++ ) { ticket.CacheId = Guid.NewGuid(); Submit( ticket ); // note that this simply makes a remoting call }

将.NET Guid转换为MongoDB ObjectID

如何将.NET GUID转换为MongoDB ObjectID(在C#中)。 另外,我可以将它再次转换回ObjectID中的相同GUID吗?

有没有办法创建短的GUID短的唯一代码?

我想创建一个简短的GUID。 有没有办法创建短的GUID短的唯一代码? 我想创建一个票证跟踪号码。

Guid.NewGuid()VS来自Random.Next()的随机字符串生成器

我的同事和我正在讨论使用哪些方法自动生成用户ID和发布ID以便在数据库中进行识别: 一个选项使用Random的单个实例,并采用一些有用的参数,因此它可以重用于各种string-gen案例(即从4位数字引脚到20位字母数字id)。 这是代码: // This is created once for the lifetime of the server instance class RandomStringGenerator { public const string ALPHANUMERIC_CAPS = “ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890”; public const string ALPHA_CAPS = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”; public const string NUMERIC = “1234567890”; Random rand = new Random(); public string GetRandomString(int length, params char[] chars) { string s = “”; for (int […]