解决方案 »

  1.   

    如何“分发”?这里很含糊。许多所谓的分发,可能丢掉了(除你的接口声明以外的许多)属性。如果没有丢掉,那么在另一边你只要获取“孙子类的全名称”,直接实例化数据为孙子类实例,并声明此实例具有此接口,即可。例如对于 Json 可能就是写var type = GetTypeByName(typeName);   //从你注册的 Type 中匹配出type,而没必要反射
    var x = (IMyData)JsonConvert.Deserialized(json, type);
      

  2.   

    用activetor.createinstance就可以了
    如果对方知道类型,直接用as转换即可。
    如果对方不知道类型,就只能继续反射调用。