private bool **(IDynamicFormModel model, DynamicRow dynamicRow, string strKey, [Dynamic(new bool[]{false,true})] ref dynamic value)
{
bool result = true;
string[] array = strKey.Split(new char[]
{
...
...
                   }
}编译时提示报错:不要使用“System.Runtime.CompilerServices.DynamicAttribute”。请改用“dynamic”关键字。 E:\**\**.c

解决方案 »

  1.   

    private bool **(IDynamicFormModel model, DynamicRow dynamicRow, string strKey, [Dynamic(new bool[]{false,true})] ref dynamic value)=>private bool **(IDynamicFormModel model, DynamicRow dynamicRow, string strKey, ref dynamic value)
      

  2.   

    我也试过,去掉能编译过,关键是去掉 [Dynamic(new bool[]{false,true})] 这块有影响吗? 反编译器加上这段代码的目的是什么?
      

  3.   

    不是反编译器加上去的,是C#编译器在将代码编译为IL的时候加上去的。你去掉没有关系,不信你编译你的代码,再反编译回来,又有了。
      

  4.   

    好,我试试,非常感谢!!
    是不是4.0以后才有这类?以前没注意,是不是动态类型的参数就会编译的时候自动加上这类代码[Dynamic(new bool[]{false,true})] ?
      

  5.   

    dynamic关键字在IL里面是用Attribute表示的,只不过是那个反编译器还不够智能,不能自动将Attribute去掉而已。