Ejemplo n.º 1
0
 public static object Unmarshal(ObjectHandle arg)
 {
     if (arg == null)
     {
         return(null);
     }
     else
     {
         DelegateAdapter delAd = arg as DelegateAdapter;
         if (delAd != null)
         {
             return(DelegateAdapter.CreateDelegate(delAd));
         }
         TaskAdapter taskAd = arg as TaskAdapter;
         if (taskAd != null)
         {
             return(TaskAdapter.CreateTask(taskAd));
         }
         DynamicAdapter dynAd = arg as DynamicAdapter;
         if (dynAd != null)
         {
             return(DynamicAdapter.CreateProxy(dynAd));
         }
         StaticAdapter statAd = arg as StaticAdapter;
         if (statAd != null)
         {
             return(StaticAdapter.CreateProxy(statAd));
         }
         UnsafeHandle uns = arg as UnsafeHandle;
         if (uns != null)
         {
             return(UnsafeHandle.GetObject(uns));
         }
         return(arg.Unwrap());
     }
 }
Ejemplo n.º 2
0
 public MarshalArgsDelegate(DelegateAdapter del)
 {
     Delegate = del;
 }
Ejemplo n.º 3
0
        public static Delegate CreateDelegate(DelegateAdapter adapter)
        {
            var mdel = new MarshalArgsDelegate(adapter);

            return(mdel.CreateInvoker());
        }