' Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'发生了

时间:2015-04-14 11:31:13

标签: c#

我正在处理这个例外,我通过互联网解决方案阅读但没有任何帮助。我的代码到目前为止。

ServiceReference.CompositeType egk = new ServiceReference.CompositeType();
                egk = client.getStatus();
                appendToList(egk);

此方法将obj添加到列表中。在这部分,我收到了例外。 问题出在括号中,动态复合导致问题,但我需要它来改变动态,我也知道复合obj有参数。

public static void appendToList(dynamic composite)
    {
        if (composite == null)
        {
            throw new ArgumentNullException("obj is null");
        }
        else
        {
            var response = myList.Find(r => r.mName == composite.mName);
            if (response == null)
            {
                myList.Add(composite);
            }
            else
            {
                int n = 0;
                foreach (CompositeType item in myList)
                {
                    if (item.mName == composite.mName)
                    {
                        n = myList.IndexOf(item);
                        myList[n] = composite;
                        break;
                    }
                }
            }
        }
    }

我的完全例外:

  

状态:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:最佳重载方法匹配' System.Collections.Generic.List.Add(eserv.CompositeType)'有一些无效的论点

1 个答案:

答案 0 :(得分:0)

添加到列表时尝试转换,例如; (如果列表类型是您自己的自定义类型)

  myList.Add(Convert.ChangeType(composite,typeof(CompositeType)));

   myList.Add((CompositeType)composite);