相关疑难解决方法(0)

C#可空字符串错误

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.

c# nullable

136
推荐指数
4
解决办法
13万
查看次数

在EF6中将字符串列设置为可为空

我有一个模型,我创建它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)

c# asp.net-mvc entity-framework asp.net-mvc-4

13
推荐指数
1
解决办法
2万
查看次数

[XmlText]序列化可以为空吗?

我有一个包含我想用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值清空列表中的元素?我真的想避免自定义序列化,但在这种情况下,或许其他一些序列化框架会更好?

.net xmlserializer

7
推荐指数
1
解决办法
1309
查看次数

为什么字符串可以为空?

可能重复:
类型'string'必须是非可空类型才能在泛型类型或方法'System.Nullable <T>'中将其用作参数T.

正如标题所说,为什么字符串默认在C#中可以为空,但如果我想要,比如说,int或double是null,我必须明确说出来吗?

.net c#

6
推荐指数
1
解决办法
8328
查看次数