//リフレクションを使用してプライベートメソッドにアクセスする RrDb.addOneDat(string,OneDat) public static bool InitSoa(RrDb sut, string domainName, string mail, uint serial, uint refresh, uint retry, uint expire, uint minimum) { var type = sut.GetType(); var func = type.GetMethod("InitSoa", BindingFlags.NonPublic | BindingFlags.Instance); return((bool)func.Invoke(sut, new object[] { domainName, mail, serial, refresh, retry, expire, minimum })); }
//リフレクションを使用してプライベートメソッドにアクセスする RrDb.initLocalHost() public static void InitLocalHost(RrDb sut) { var type = sut.GetType(); var func = type.GetMethod("InitLocalHost", BindingFlags.NonPublic | BindingFlags.Instance); func.Invoke(sut, new object[] {}); }
//リフレクションを使用してプライベートメソッドにアクセスする RrDb.get(int) public static OneRr Get(RrDb sut, int index) { var type = sut.GetType(); var func = type.GetMethod("Get", BindingFlags.NonPublic | BindingFlags.Instance); return((OneRr)func.Invoke(sut, new object[] { index })); }
//リフレクションを使用してプライベートメソッドにアクセスする RrDb.size() public static int Size(RrDb sut) { var type = sut.GetType(); var func = type.GetMethod("Size", BindingFlags.NonPublic | BindingFlags.Instance); return((int)func.Invoke(sut, new object[] {})); }
//リフレクションを使用してプライベートメソッドにアクセスする RrDb.addOneDat(string,OneDat) public static void AddOneDat(RrDb sut, string domainName, OneDat oneDat) { var type = sut.GetType(); var func = type.GetMethod("AddOneDat", BindingFlags.NonPublic | BindingFlags.Instance); try{ func.Invoke(sut, new object[] { domainName, oneDat }); } catch (Exception e) { //リフレクションで呼び出したメソッドで例外が発生すると、System.Reflection.TargetInvocationException //でラップされて、InnerException プロパティに発生した例外が設定される throw e.InnerException; } }
//リフレクションを使用してプライベートメソッドにアクセスする RrDb.addNamedCaLine(string tmpName, string str) public static string AddNamedCaLine(RrDb sut, string tmpName, string str) { var type = sut.GetType(); var func = type.GetMethod("AddNamedCaLine", BindingFlags.NonPublic | BindingFlags.Instance); try{ return((string)func.Invoke(sut, new object[] { tmpName, str })); } catch (Exception e) { //リフレクションで呼び出したメソッドで例外が発生すると、System.Reflection.TargetInvocationException //でラップされて、InnerException プロパティに発生した例外が設定される throw e.InnerException; } }