正在构建我的自定义组件。我试图读取PipleBuffer的值 GetProperty(“propertyname”)。GetValue()如下:
public override void ProcessInput(int inputID, PipelineBuffer buffer)
{
while (buffer.NextRow())
{
string nk = buffer[1].ToString();
string nk1 = buffer.GetType().GetProperty("NK").GetValue(buffer, null).ToString();
在行缓冲区[1] .ToString()工作正常, 但在下一行它失败了:
NullReferenceException:对象引用未设置为对象的实例
请提供任何线索。
无法在保护级别下创建PipleBuffer的对象实例。
答案 0 :(得分:0)
buffer.GetType().GetProperty("NK")
为空,或buffer.GetType().GetProperty("NK").GetValue(buffer, null)
为空。
按如下方式更改您的代码并找出:
PropertyInfo prop = buffer.GetType().GetProperty("NK");
if (prop == null)
{
throw new Exception("prop is null!");
}
object value = prop.GetValue(buffer, null);
if (value == null)
{
throw new Exception("value is null!");
}
string nk1 = value.ToString();
请注意,这仅用于诊断目的。我建议你不要在代码中保留这个内容!