if( this.propertyGrid1.SelectedObject is DataServerEntity )         //服务器
                    this.TstringHasChanged = !DataServerBLL.Singleton.Update( this.propertyGrid1.SelectedObject as DataServerEntity );
                else if( this.propertyGrid1.SelectedObject is DataBaseEntity )      //数据库
                    this.TstringHasChanged = !DataBaseBLL.Singleton.Update( this.propertyGrid1.SelectedObject as DataBaseEntity );
                else if( this.propertyGrid1.SelectedObject is DataTableEntity )     //表
                    this.TstringHasChanged = !DataTableBLL.Singleton.Update( this.propertyGrid1.SelectedObject as DataTableEntity );
                else if( this.propertyGrid1.SelectedObject is DataFieldEntity )     //字段
                    this.TstringHasChanged = !DataFieldBLL.Singleton.Update( this.propertyGrid1.SelectedObject as DataFieldEntity );
                else if( this.propertyGrid1.SelectedObject is TemplateEntity )      //模板
                    this.TstringHasChanged = !TemplateBLL.Singleton.Update( this.propertyGrid1.SelectedObject as TemplateEntity );
                else if( this.propertyGrid1.SelectedObject is SolutionEntity )      //解决方案
                    this.TstringHasChanged = !SolutionBLL.Singleton.Update( this.propertyGrid1.SelectedObject as SolutionEntity );
                else if( this.propertyGrid1.SelectedObject is ProjEntity )          //项目
                    this.TstringHasChanged = !ProjBLL.Singleton.Update( this.propertyGrid1.SelectedObject as ProjEntity );
                else
                    MessageBox.Show( "保存失败!" );请注意
执行Update方法的子类不一样,参数也不一样

解决方案 »

  1.   

    DataServerBLL、DataBaseBLL、DataTableBLL、DataFieldBLL、TemplateBLL、SolutionBLL、ProjBLL---->抽象出基类或者接口,提供Update方法;IObjectBLL.Update(IObjectEntity objEntity)
    上述各类均实现这个接口的Update方法,在方法内将objEntity转换为需要的具体Entity类型;如:
    class DataServerBLL:IObjectBLL
    {
       bool Update(IObjectEntity objEntity)
       {
           DataServerEntity dataServerEntity = objEntity as DataServerEntity;
           //更新方法具体操作
       }
    }DataServerEntity 、DataBaseEntity、DataTableEntity、DataFieldEntity、TemplateEntity、SolutionEntity、ProjEntity--->同样抽象出基类或者接口,如IObjectEntity//前面的if和else if语句块改为:
    this.TstringHasChanged = !IObjectBLL.Singleton.Update(this.propertyGrid1.SelectedObject as IObjectEntity);