C#反射的NullReferenceException

背景

xml文件中有些元素的属性被删除,导致文件无法被读取(C#)。

调试之后发现,因为属性被删除,读进来会保持默认值null,在后续的反射中如果用这个null给字符串属性赋值,会抛异常。

另外发现前面还有其他一些属性也被删掉了,但并不会导致异常,只因它们的类型是int。

示例

csharp 复制代码
using System.Reflection;
class Program
{
    public int A
    {
        set;
        get;
    }

    public string B
    {
        set;
        get;
    }

    static void Main(string[] args)
    {
        Program program = new Program();
        PropertyInfo pa = program.GetType().GetProperty("A");
        pa.SetValue(program, null, null);  // 正常
        PropertyInfo pb = program.GetType().GetProperty("B");
        pb.SetValue(program, null, null);  // 异常
    }
}
相关推荐
张人玉6 小时前
C#WPF UI路由事件:事件冒泡与隧道机制
ui·c#·wpf
雪域迷影8 小时前
C#中通过get请求获取api.open-meteo.com网站的天气数据
开发语言·http·c#·get
yue0088 小时前
C#类继承
java·开发语言·c#
AI柠檬9 小时前
几种排序算法的实现和性能比较
数据结构·算法·c#·排序算法
code bean9 小时前
【C#】Channel<T>:现代 .NET 中的异步生产者-消费者模型详解
c#
yue0089 小时前
C# XML文件的读写V2.0
xml·开发语言·c#
睡前要喝豆奶粉9 小时前
.NET Core Web API开发需引入的三个基本依赖配置说明
oracle·c#·.netcore
张人玉12 小时前
C# TCP 服务器和客户端
服务器·tcp/ip·c#
睡前要喝豆奶粉12 小时前
.NET Core Web API中数据库相关配置
数据库·c#·.netcore
周杰伦fans13 小时前
C# 中 Entity Framework (EF) 和 EF Core 里的 `AsNoTracking` 方法
开发语言·c#