草庐IT

developers_guide

全部标签

c# - 通用转换功能似乎不适用于 Guids

我有以下代码:publicstaticTParameterFetchValue(stringparameterKey){Parameterresult=null;result=ParameterRepository.FetchParameter(parameterKey);return(T)Convert.ChangeType(result.CurrentValue,typeof(T),CultureInfo.InvariantCulture);}result.CurrentValue的类型是字符串。我希望能够将其转换为Guid,但我不断收到错误消息:InvalidcastfromSy

c# - 如何使用 .NET 在 C# 中以编程方式获取应用程序的 GUID?

我需要在C#中访问我的项目的程序集。我可以在项目属性下的“程序集信息”对话框中看到GUID,目前我只是将它复制到代码中的常量。GUID永远不会改变,所以这不是一个糟糕的解决方案,但直接访问它会很好。有办法做到这一点吗? 最佳答案 试试下面的代码。您要查找的值存储在附加到Assembly的GuidAttribute实例中usingSystem.Runtime.InteropServices;staticvoidMain(string[]args){varassembly=typeof(Program).Assembly;varattr

c# - 类似 YouTube 的 GUID

是否可以像YouTube(N7Et6c9nL9w)那样生成短GUID?如何实现?我想在网络应用程序中使用它。 最佳答案 你可以使用Base64:stringbase64Guid=Convert.ToBase64String(Guid.NewGuid().ToByteArray());这会生成类似E1HKfn68Pkms5zsZsvKONw==的字符串。由于GUID始终为128位,因此您可以省略==,您知道它始终会出现在末尾,这将为您提供22个字符的字符串。不过这不像YouTube那么短。

c# - 为什么 Guid.ToByteArray() 按照它的方式对字节进行排序?

当您在.NET中的GUID上调用ToByteArray()时,与GUID的字符串表示形式相比,结果数组中的字节顺序不是您所期望的。例如,对于以下表示为字符串的GUID:11223344-5566-7788-9900-aabbccddeeffToByteArray()的结果是这样的:44,33,22,11,66,55,88,77,99,00,AA,BB,CC,DD,EE,FF注意前四个字节的顺序是颠倒的。字节4和5也被交换,字节6和7也被交换。但最后8个字节的顺序与它们在字符串中的表示顺序相同。我知道这正在发生。我想知道的是为什么.NET以这种方式处理它。作为引用,您可以看到一些关于此的

c# - 如何在 C# 中将 GUID 转换为字符串?

我是C#新手。我知道在vb.net中,我可以这样做:Dimguidasstring=System.Guid.NewGuid.ToString在C#中,我正在尝试做Stringguid=System.Guid.NewGuid().ToString;但我收到“无法将方法组‘ToString’转换为非委托(delegate)类型‘string’。您是否打算调用该方法?”错误。 最佳答案 根据MSDNGuid.ToString(stringformat)方法根据提供的格式说明符返回此Guid实例值的字符串表示形式。例子:guidVal.To

c# - 如何在 C# 中声明常量 Guid?

是否可以在C#中声明一个常量Guid?我知道我可以声明一个staticreadonlyGuid,但是是否有一种语法允许我编写constGuid? 最佳答案 没有。const修饰符仅适用于“原始”类型(bool、int、float、double、long、decimal、short、byte)和字符串。基本上任何你可以声明为文字的东西。 关于c#-如何在C#中声明常量Guid?,我们在StackOverflow上找到一个类似的问题: https://stacko

C# guid 和 SQL uniqueidentifier

我想创建一个GUID并将其存储在数据库中。在C#中,可以使用Guid.NewGuid()创建guid。这将创建一个128位整数。SQLServer有一个uniqueidentifier列,它包含一个巨大的十六进制数。是否有一种好的/首选方法可以使C#和SQLServerguids很好地协同工作?(即使用Guid.New()创建一个guid,然后使用nvarchar或其他字段将其存储在数据库中......或者创建SQLServer通过其他方式期望的十六进制数) 最佳答案 下面的代码片段展示了如何使用参数化查询插入GUID:using(

c# - Entity Framework 6 GUID 作为主键 : Cannot insert the value NULL into column 'Id' , 表 'FileStore';列不允许空值

我有一个主键为“Id”的实体,它是Guid:publicclassFileStore{publicGuidId{get;set;}publicstringName{get;set;}publicstringPath{get;set;}}还有一些配置:protectedoverridevoidOnModelCreating(DbModelBuildermodelBuilder){modelBuilder.Entity().Property(x=>x.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);base.

c# - Guid 的默认值是多少?

int的默认值为0,string的默认值为"",boolean的默认值为false。有人可以澄清guid的默认值是什么吗? 最佳答案 您可以使用这些方法来获取空的guid。结果将是一个所有数字都为0的guid-“00000000-0000-0000-0000-000000000000”。newGuid()default(Guid)Guid.Empty正如UseKeim在评论中指出的那样default是default(Guid)的缩写 关于c#-Guid的默认值是多少?,我们在StackO

c# - 生成不带连字符的 GUID

我在代码中使用以下语句生成GUIDbyte[]keyBytes=Encoding.UTF8.GetBytes(Guid.NewGuid().ToString().Substring(0,12));但是,当生成GUID时,我发现它也包含连字符。如何生成仅包含字母(大写和小写)和数字的GUID?我不想要连字符。有人可以给我这样的想法吗? 最佳答案 请注意,您正在谈论Guid的(规范)字符串表示形式。Guid本身实际上是一个128位整数值。您可以将“N”说明符与Guid.ToString(String)一起使用过载。Guid.NewGui