public static T GetOrRegister <T>() where T : InstanceHolder <T>
        {
            var holder = default(T);

            if ((holder = LooseCrossDomainAccessor <T> .HolderOrDefault) == null)
            {
                LooseCrossDomainAccessor <T> .Register();

                holder = LooseCrossDomainAccessor <T> .Holder;
            }
            return(holder);
        }
 public static void Unload <T>() where T : InstanceHolder <T>
 {
     LooseCrossDomainAccessor <T> .Unload();
 }
 public static void Register <T>() where T : InstanceHolder <T>
 {
     LooseCrossDomainAccessor <T> .Register();
 }