private string? typeOfContract
{
get { return (string?)ViewState["typeOfContract"]; }
set { ViewState["typeOfContract"] = value; }
}
Run Code Online (Sandbox Code Playgroud)
稍后在代码中我使用它如下:
typeOfContract = Request.QueryString["type"];
Run Code Online (Sandbox Code Playgroud)
我typeOfContract在行声明的声明中收到以下错误:
类型'string'必须是不可为空的值类型,以便在泛型类型或方法'System.Nullable <T>'中将其用作参数'T'
有任何想法吗?基本上,我想确保在执行操作之前"type"存在QueryString.
我有一个模型,我创建它EF 150:
public partial class Comment
{
[DisplayName("????? ???")]
public int Id { get; set; }
[Required(ErrorMessage = "??? ??? ?? ???? ????")]
[DisplayName("??? ???")]
public string CommentText { get; set; }
[DisplayName("????? ??????? ")]
public long LikeCount { get; set; }
[DisplayName("????? ????????")]
public long DisLikeCount { get; set; }
[DisplayName("????? ?????? ")]
public System.DateTime PublishDate { get; set; }
[DisplayName("????? ????? ")]
public string Visible { get; set; }
[DisplayName("??? ?????? ")]
public Nullable<string> AutherUserName { get; set; …Run Code Online (Sandbox Code Playgroud) 我有一个包含我想用XmlSerializer序列化的数组的类:
[XmlArray("properties")]
[XmlArrayItem("property", IsNullable = true)]
public List<Property> Properties { get; set; }
Run Code Online (Sandbox Code Playgroud)
Property是一个包含属性的类,有些XmlText:
[XmlAttribute("name")]
public string Name { get; set; }
[XmlText]
public string Value { get; set; }
Run Code Online (Sandbox Code Playgroud)
问题是,当Value为null时,它序列化为空字符串:
<property name="foo" />
Run Code Online (Sandbox Code Playgroud)
而不是null.我正在寻找要完全省略的值,或者看起来像这样:
<property name="foo" xsi:nil="true" />
Run Code Online (Sandbox Code Playgroud)
是否可以根据其XmlText值清空列表中的元素?我真的想避免自定义序列化,但在这种情况下,或许其他一些序列化框架会更好?
可能重复:
类型'string'必须是非可空类型才能在泛型类型或方法'System.Nullable <T>'中将其用作参数T.
正如标题所说,为什么字符串默认在C#中可以为空,但如果我想要,比如说,int或double是null,我必须明确说出来吗?