业务代码
class Operate { public string _firstKey; public string _secondKey; public string _extendKey; public string FirstKey { get { return _firstKey;} set{_firstKey=value;} } public string SecondKey { get { return _secondKey; } set { _secondKey = value; } } public string ExtendKey { get { return _extendKey; } set { _extendKey = value; } } public virtual string GetCheckValue(string _keyOne, string _keyTwo,string _keyThree) { string _checkValue = "0"; return _checkValue; } } class OperateOne : Operate { public override string GetCheckValue(string _keyOne, string _keyTwo, string _keyThree) { MethodsCheck c=new MethodsCheck(); string _checkValue = c.fileExistCheck(_keyOne,_keyTwo).ToString(); return _checkValue; } } class OperateTwo : Operate { public override string GetCheckValue(string _keyOne, string _keyTwo, string _keyThree) { MethodsCheck c = new MethodsCheck(); string _checkValue = c.RegMachineCheck(_keyOne, _keyTwo).ToString(); return _checkValue; } } class OperateThree : Operate { public override string GetCheckValue(string _keyOne, string _keyTwo, string _keyThree) { MethodsCheck c = new MethodsCheck(); string _checkValue = c.passwordValidate(_keyOne, _keyTwo).ToString(); return _checkValue; } } class OperateFour : Operate { public override string GetCheckValue(string _keyOne, string _keyTwo, string _keyThree) { MethodsCheck c = new MethodsCheck(); string _checkValue = c.GetDriverVersion(_keyOne, _keyTwo).ToString(); return _checkValue; } } class OperateFive : Operate { public override string GetCheckValue(string _keyOne, string _keyTwo, string _keyThree) { MethodsCheck c = new MethodsCheck(); string _checkValue = c.Getfilelength(_keyOne, _keyTwo).ToString(); return _checkValue; } } class OperateSix : Operate { public override string GetCheckValue(string _keyOne, string _keyTwo, string _keyThree) { MethodsCheck c = new MethodsCheck(); string _checkValue = c.GetNetCardName(_keyTwo).ToString(); return _checkValue; } } class OperateSeven : Operate { public override string GetCheckValue(string _keyOne, string _keyTwo, string _keyThree) { MethodsCheck c = new MethodsCheck(); string _checkValue = c.GetnetConfig(_keyOne, _keyTwo).ToString(); return _checkValue; } } class OperateEight : Operate { public override string GetCheckValue(string _keyOne, string _keyTwo, string _keyThree) { MethodsCheck c = new MethodsCheck(); string _checkValue = c.RegUserCheck(_keyOne, _keyTwo).ToString(); return _checkValue; } } class OperateNine : Operate { public override string GetCheckValue(string _keyOne, string _keyTwo, string _keyThree) { MethodsCheck c = new MethodsCheck(); string _checkValue = c.GetTxTstring(_keyOne, _keyTwo).ToString(); return _checkValue; } } class OperateTen : Operate { public override string GetCheckValue(string _keyOne, string _keyTwo, string _keyThree) { MethodsCheck c = new MethodsCheck(); string _checkValue = c.GetXMLString(_keyOne, _keyTwo).ToString(); return _checkValue; } } class OperateEleven : Operate { public override string GetCheckValue(string _keyOne, string _keyTwo, string _keyThree) { MethodsCheck c = new MethodsCheck(); string _checkValue = c.GetStringLinq(_keyOne,_keyTwo,_keyThree).ToString(); return _checkValue; } } class OperateContext { private Operate or; public void setBehavior(Operate Oper) { this.or = Oper; } public string GetValue(string _keyOne, string _keyTwo, string _keyThree) { return or.GetCheckValue(_keyOne, _keyTwo, _keyThree); } }
界面代码
string Xmlselect = ConfigurationManager.AppSettings["selectXml"].ToString(); DataSet ds = new DataSet(); ds.ReadXml(strPath + @"" + Xmlselect); dataGridView1.DataSource = ds.Tables[0].DefaultView; for (int i = 0; i < ds.Tables["CheckTable"].Rows.Count; i++) { string MethodID = ds.Tables["CheckTable"].Rows[i]["MethodId"].ToString(); string CheckValue; string refValue = ds.Tables["CheckTable"].Rows[i]["RefValue"].ToString(); OperateContext oc = new OperateContext(); oc.setBehavior((Operate)Assembly.Load("SECC").CreateInstance(("SECC."+MethodID),false,BindingFlags.Default,null,null,null,null)); CheckValue = oc.GetValue(ds.Tables["CheckTable"].Rows[i]["FirKey"].ToString(), ds.Tables["CheckTable"].Rows[i]["SecKey"].ToString(), ds.Tables["CheckTable"].Rows[i]["CheckRemark"].ToString()); ds.Tables["CheckTable"].Rows[i]["CheckValue"] = CheckValue; if (refValue == CheckValue) { this.dataGridView1[0, i].Value = true; } else { this.dataGridView1[0, i].Value = false; this.dataGridView1[5, i].Style.ForeColor = Color.DarkRed; lg.log(ds.Tables["CheckTable"].Rows[i]["CheckName"].ToString() + " Check " + ds.Tables["CheckTable"].Rows[i]["CheckValue"].ToString(), strPath, "ErrorLog"); } }
XML文件
<?xml version="1.0" encoding="utf-8"?> <Check> <CheckTable> <MethodID>OperateOne</MethodID> <FirKey>C:\</FirKey> <SecKey>ec.exe</SecKey> <Checkid>1</Checkid> <CheckName>Install EC.exe</CheckName> <RefValue>True</RefValue> <CheckValue>0</CheckValue> <CheckRemark></CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateOne</MethodID> <FirKey>C:\Windows\Fonts\</FirKey> <SecKey>Vrinda.ttf</SecKey> <Checkid>2</Checkid> <CheckName>Install EC.exe</CheckName> <RefValue>True</RefValue> <CheckValue>0</CheckValue> <CheckRemark></CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateOne</MethodID> <FirKey>C:\Windows\System32\</FirKey> <SecKey>MSVCR71.DLL</SecKey> <Checkid>3</Checkid> <CheckName>Install EC.exe</CheckName> <RefValue>True</RefValue> <CheckValue>0</CheckValue> <CheckRemark></CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateThree</MethodID> <FirKey>Administrator</FirKey> <SecKey>admin</SecKey> <Checkid>3</Checkid> <CheckName>AdminPassword</CheckName> <RefValue>True</RefValue> <CheckValue></CheckValue> <CheckRemark></CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateThree</MethodID> <FirKey>Prodiva</FirKey> <SecKey>Pica$4$Pass</SecKey> <Checkid>4</Checkid> <CheckName>ProdivaPassword</CheckName> <RefValue>True</RefValue> <CheckValue></CheckValue> <CheckRemark></CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateThree</MethodID> <FirKey>Ethan</FirKey> <SecKey>e</SecKey> <Checkid>5</Checkid> <CheckName>ProdivaPassword</CheckName> <RefValue>True</RefValue> <CheckValue></CheckValue> <CheckRemark></CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateFour</MethodID> <FirKey>Driver</FirKey> <SecKey>MONITORDELF014</SecKey> <Checkid>5</Checkid> <CheckName>Driver</CheckName> <RefValue>6.1.7600.16385</RefValue> <CheckValue></CheckValue> <CheckRemark></CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateFive</MethodID> <FirKey>C:Windows</FirKey> <SecKey>SCANACQ3090.ini</SecKey> <Checkid>5</Checkid> <CheckName>SCANACQ3090.ini</CheckName> <RefValue>1074</RefValue> <CheckValue></CheckValue> <CheckRemark></CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateSix</MethodID> <FirKey>C:Windows</FirKey> <SecKey>Realtek PCIe GBE Family Controller</SecKey> <Checkid>5</Checkid> <CheckName>CardName</CheckName> <RefValue>TestNet</RefValue> <CheckValue></CheckValue> <CheckRemark></CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateSeven</MethodID> <FirKey>Realtek PCIe GBE Family Controller</FirKey> <SecKey>*FlowControl</SecKey> <Checkid>5</Checkid> <CheckName>SCANACQ3090.ini</CheckName> <RefValue>1</RefValue> <CheckValue></CheckValue> <CheckRemark></CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateSeven</MethodID> <FirKey>Realtek PCIe GBE Family Controller</FirKey> <SecKey>*JumboPacket</SecKey> <Checkid>5</Checkid> <CheckName>SCANACQ3090.ini</CheckName> <RefValue>TestNet</RefValue> <CheckValue></CheckValue> <CheckRemark></CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateEleven</MethodID> <FirKey>C:DICOMServer.xml</FirKey> <SecKey>Timemedical/MPPSDicom/MPPSDicomNodes</SecKey> <Checkid>5</Checkid> <CheckName>MPPSDicom-AETitle</CheckName> <RefValue>LWPACS</RefValue> <CheckValue></CheckValue> <CheckRemark>AETitle</CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateEleven</MethodID> <FirKey>C:DICOMServer.xml</FirKey> <SecKey>Timemedical/MPPSDicom/MPPSDicomNodes</SecKey> <Checkid>5</Checkid> <CheckName>MPPSDicom-IPAddress</CheckName> <RefValue>192.168.1.253</RefValue> <CheckValue></CheckValue> <CheckRemark>IPAddress</CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateEleven</MethodID> <FirKey>C:DICOMServer.xml</FirKey> <SecKey>Timemedical/MPPSDicom/MPPSDicomNodes</SecKey> <Checkid>5</Checkid> <CheckName>MPPSDicom-PortNo</CheckName> <RefValue>4443</RefValue> <CheckValue></CheckValue> <CheckRemark>PortNo</CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateEleven</MethodID> <FirKey>C:DICOMServer.xml</FirKey> <SecKey>Timemedical/MWLDicom/MWLDicomNote</SecKey> <Checkid>5</Checkid> <CheckName>MWL-AETitle</CheckName> <RefValue>LWPACS</RefValue> <CheckValue></CheckValue> <CheckRemark>AETitle</CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateEleven</MethodID> <FirKey>C:DICOMServer.xml</FirKey> <SecKey>Timemedical/MWLDicom/MWLDicomNote</SecKey> <Checkid>5</Checkid> <CheckName>MWL-IPAddress</CheckName> <RefValue>192.168.1.253</RefValue> <CheckValue></CheckValue> <CheckRemark>IPAddress</CheckRemark> </CheckTable> <CheckTable> <MethodID>OperateEleven</MethodID> <FirKey>C:DICOMServer.xml</FirKey> <SecKey>Timemedical/MWLDicom/MWLDicomNote</SecKey> <Checkid>5</Checkid> <CheckName>MWL-PortNo</CheckName> <RefValue>4443</RefValue> <CheckValue></CheckValue> <CheckRemark>PortNo</CheckRemark> </CheckTable> </Check>