Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在数据库字符串列中持久化可为null的值类型的好方法_C#_Serialization_Type Conversion - Fatal编程技术网

C# 在数据库字符串列中持久化可为null的值类型的好方法

C# 在数据库字符串列中持久化可为null的值类型的好方法,c#,serialization,type-conversion,C#,Serialization,Type Conversion,我想知道在数据库的字符串列中持久化可为空值类型的最佳方法是什么 背景: 我的计划是在数据库中有一个通用消息表,其中包含资源名称,Web使用该表查找本地化的资源字符串,并将格式项序列化为串联字符串: TABLE LogMessages ( ResourceName NVARCHAR(50), FormatItems NTEXT ) 假设我在Web上有一个资源文件,其中包含一个资源条目“UserSetup”,其值为“用户{0}已在{1:d}上创建。” 例如,表中的条目可能是: Resour

我想知道在数据库的字符串列中持久化可为空值类型的最佳方法是什么

背景: 我的计划是在数据库中有一个通用消息表,其中包含资源名称,Web使用该表查找本地化的资源字符串,并将格式项序列化为串联字符串:

TABLE LogMessages
(
  ResourceName NVARCHAR(50),
  FormatItems NTEXT
)
假设我在Web上有一个资源文件,其中包含一个资源条目“UserSetup”,其值为“用户{0}已在{1:d}上创建。”

例如,表中的条目可能是:

ResourceName:“用户设置”-->引用资源的名称字段
FormatItems:“System.String;Bob | System.DateTime;2009-06-15T13:45:30.0900000”

然后Web将还原数组并将其传递给string.Format(…)方法

问题: 除了这个概念是否合理的问题之外,我想知道空值(例如int?)应该如何保存在连接的字符串中?。我可以使用空引用的关键字吗

一个想法是使用像NULL这样的关键字,例如“System.String;NULL|System.DateTime;2009-06-15T13:45:30.0900000”。但这可能与值实际上是字符串“NULL”的对象冲突

您建议如何持久化可为null的类型和null值


感谢你的任何想法

尝试使用空字符串:“?

您的逻辑在
null
String.Empty
)之间是否有差异?对于值类型,您可以只使用
string.Empty
,如:
System.Int32|系统日期时间;2009-06-15T13:45:30.0900000
@Corak谢谢Corak。你说得对,这么简单,但我还没想过。我将使用相同的threat string.Empty和null,并将string.Empty用作其他值类型的null标识符。我会将您的评论标记为答案,但这不可能用于评论。请不要威胁
string.Empty
null
。他们很容易害怕^_^