http://www.informit.com/isapi/product_id~%7B3B8EC60F-6DB5-45B9-998A-4F3ABF4C04D2%7D/element_id~%7BC4DB2591-7130-47F7-85C8-6F3DF8025915%7D/st~%7BD06674E4-4033-4F5E-85D4-5D32A6FD7B71%7D/content/articlex.asp

解决方案 »

  1.   

    AbstractClassB是从 MarshalByRefObject 派生的类型吗?
      

  2.   

    这个方法的文档关于扔NotSupportedException的说明:
    activationAttributes 不是空数组并且正被创建的类型未从 MarshalByRefObject 派生。
      

  3.   

    第一种方式不出错是因为Activator.CreateInstance(string,string)没有这个要求。第二种方式如果第三个参数为空也没有这个要求,如果第三个参数不为空,那么这个类型必须继承 MarshalByRefObject .
      

  4.   

    "第三个参数不为空,那么这个类型必须继承 MarshalByRefObject ."
    我试过继承.但它又throw出
    System.NotSupportedException: 对于 MarshalByRefObject,UrlAttribute 是唯一一个受支持的属性。vs.net help看了也不知道为什么.
      

  5.   

    也就是说第三个参数的数组里的元素必须是UrlAttribute类型
      

  6.   

    楼主如果是传为创建对象而需要的参数的话,请用:
    [C#]
    public static ObjectHandle CreateInstance(
       string assemblyName,//"assembly"
       string typeName,//"AbstractClassB"
       bool ignoreCase,//false
       BindingFlags bindingAttr,//(BindingFlags)0x214
       Binder binder,//null
       object[] args,//new Object[] {xx, xx, xx}
       CultureInfo culture,//null
       object[] activationAttributes,//null
       Evidence securityInfo//null
    );"//"后面为要传入的参数值。CreateInstance("assembly","AbstractClassB",false,(BindingFlags)0x214,
    null,new Object[] {xx, xx, xx},null,null,null)