码迷,mamicode.com
首页 > 其他好文 > 详细

Resx 文件无效。未能加载 .RESX 文件中使用的类型 System.Collections.Generic.List`1请确保已在项目中添加了必需的引用。

时间:2020-01-18 11:08:12      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:ret   als   好的   代码生成器   stack   --   flowchart   列表   lis   

 

在C#程序编写过程中,会遇到:Resx 文件无效。未能加载 .RESX 文件中使用的类型 System.Collections.Generic.List1`请确保已在项目中添加了必需的引用
主要原因很可能是使用了类的可序列化的原因,代码如下:

[Serializable]
public class TimeLineItem
{
    public string Title;
    public string Content;

    public TimeLineItem(string content)
    {
        this.Title = DateTime.Now.ToString("MM-dd hh:mm:ss");
        this.Content = content;
    }
}

于是找了很多方法。如下:

  1. 删除窗体中对应.resx后对文件里面的<data>...</data>节点
    结果:报错,控件大小或参数改变会重新添加节点
  2. 将对应的报错节点的bytearray.base64改成bytearray.base32
    结果:报错,控件大小或参数改变会重新添加节点
  3. 把序列化的类单独写在一个cs文件内
    结果:报错,控件大小或参数改变会重新添加节点
  4. 将对应的App.Designer.cs内的this.Control1.TimeLineItems = ((System.Collections.Generic.List<App.UserControls.TimeLineItem>)(resources.GetObject("Control1.TimeLineItems")));改成this.Control1.TimeLineItems = ((System.Collections.Generic.List<App.UserControls.TimeLineItem>)(new List<App.UserControls.TimeLineItem>()));
    结果:报错,控件大小或参数改变会重新添加节点
  5. 在引用的类添加注释
private List<TimeLineItem> timeLineItems;
[Description("项列表"), Category("自定义")]
//代码生成器产生对象内容的代码,而不是对象本身的代码。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), MergableProperty(false)]
public List<TimeLineItem> TimeLineItems
{
    get { return timeLineItems; }
    set
    {
        timeLineItems = value;
    }
}

结果:节点不会重新添加
大家有什么好的解决之道欢迎留言指正

原文参考地址
stackoverflow
CSDN论坛

Resx 文件无效。未能加载 .RESX 文件中使用的类型 System.Collections.Generic.List`1请确保已在项目中添加了必需的引用。

标签:ret   als   好的   代码生成器   stack   --   flowchart   列表   lis   

原文地址:https://www.cnblogs.com/kris-wang/p/12208194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!