protected override void Dispose(bool disposing)
 {
     IsDisposed = true;
     _List      = null;
     _DTWrapper = null;
     if (_AsyncListServer != null)
     {
         _AsyncListServer.Dispose();
         _AsyncListServer = null;
     }
     base.Dispose(disposing);
 }
        AsyncListServer2DatacontrollerProxy CreateRunTimeProxy()
        {
#if SL
            DataServiceQueryAsyncHelper.SyncContext = SynchronizationContext.Current;
#endif
            AsyncListServerCore core = new AsyncListServerCore(SynchronizationContext.Current);
            core.ListServerGet          += listServerGet;
            core.ListServerFree         += listServerFree;
            core.GetTypeInfo            += getTypeInfo;
            core.GetPropertyDescriptors += getPropertyDescriptors;
            core.GetWorkerThreadRowInfo += getWorkerRowInfo;
            core.GetUIThreadRow         += getUIRow;
            AsyncListServer2DatacontrollerProxy rv = new AsyncListServer2DatacontrollerProxy(core);
            return(rv);
        }
 IList IListSource.GetList()
 {
     if (_List == null)
     {
         if (IsDisposed)
         {
             throw new ObjectDisposedException(this.ToString());
         }
         if (this.Site != null && this.Site.DesignMode)
         {
             _List = _DTWrapper = CreateDesignTimeWrapper();
         }
         else
         {
             _List = _AsyncListServer = CreateRunTimeProxy();
         }
     }
     return(_List);
 }