/// <summary> /// <see cref="SimplestScout"/> クラスの新しいインスタンスを作成します。 /// </summary> public SimplestScout() { /// 調査項目の定義 ScoutingMethod.Clear(); ScoutingMethod.Add(key: "ディレクトリ", value: new ParentDirectoryScoutingMethod()); ScoutingMethod.Add(key: "ファイル", value: new NameScoutingMethod()); }
/// <summary> /// <see cref="ComUsageScout"/> クラスの新しいインスタンスを作成します。 /// </summary> public ComUsageScout() { /// COM調査項目の追加 void addMethod(string comObjectName) { var method = new NumberOfComInstanceCreationScoutingMethod() { ComObjectName = comObjectName }; ScoutingMethod.Add(key: $"COM({comObjectName})", value: method); } /// 調査項目の定義 addMethod("Access.Application"); addMethod("Excel.Application"); addMethod("Shell.Application"); addMethod("basp21"); addMethod("basp21.FTP"); addMethod("ADODB.Command"); addMethod("ADODB.Connection"); addMethod("ADODB.Recordset"); addMethod("WScript.Network"); addMethod("Scripting.FileSystemObject"); }
/// <summary> /// <see cref="TextScout"/> クラスの新しいインスタンスを作成します。 /// </summary> public TextScout() { /// 調査項目の定義 ScoutingMethod.Add(key: "文字エンコード", value: new EncodingScoutingMethod()); ScoutingMethod.Add(key: "文字数", value: new TextLengthScoutingMethod()); ScoutingMethod.Add(key: "文字数(空白)", value: new NumberOfBlanksScoutingMethod()); ScoutingMethod.Add(key: "行数", value: new NumberOfRowsScoutingMethod()); ScoutingMethod.Add(key: "行数(空)", value: new NumberOfEmptyRowsScoutingMethod()); ScoutingMethod.Add(key: "平均(行文字数)", value: new RowTextLengthAverageScoutingMethod()); ScoutingMethod.Add(key: "標準偏差(行文字数)", value: new RowTextLengthStandardDeviationScoutingMethod()); }
/// <summary> /// <see cref="OldVbScout"/> クラスの新しいインスタンスを作成します。 /// </summary> public OldVbScout() { /// 調査項目の定義 ScoutingMethod.Add(key: "行数(VBコメント)", value: new NumberOfVB6CommentRowsScoutingMethod()); ScoutingMethod.Add(key: "関数(Private/Sub)", value: new NumberOfVB6PrivateSubProceduresScoutingMethod()); ScoutingMethod.Add(key: "関数(Private/Function)", value: new NumberOfVB6PrivateFunctionProceduresScoutingMethod()); ScoutingMethod.Add(key: "関数(Public/Sub)", value: new NumberOfVB6PublicSubProceduresScoutingMethod()); ScoutingMethod.Add(key: "関数(Public/Function)", value: new NumberOfVB6PublicFunctionProceduresScoutingMethod()); ScoutingMethod.Add(key: "関数(外部dll/Private)", value: new NumberOfVB6PrivateReferencesToProcedureImplementedInExternalFileScoutingMethod()); ScoutingMethod.Add(key: "関数(外部dll/Public)", value: new NumberOfVB6PublicReferencesToProcedureImplementedInExternalFileScoutingMethod()); ScoutingMethod.Add(key: "関数(行数)", value: new NumberOfVB6ProcedureRowsScoutingMethod()); ScoutingMethod.Add(key: "関数(空行数)", value: new NumberOfVB6EmptyRowsInProcedureScoutingMethod()); ScoutingMethod.Add(key: "関数(コメント行)", value: new NumberOfVB6CommentRowsInProcedureScoutingMethod()); ScoutingMethod.Add(key: "タブスペース混在", value: new UsingBothTabsAndSpacesScoutingMethod()); }
/// <summary> /// <see cref="FullScout"/> クラスの新しいインスタンスを作成します。 /// </summary> public FullScout() { /// 実装されている全てのScoutの調査項目を含める var types = Assembly.GetExecutingAssembly().GetTypes() .Where(x => string.Equals(x.Namespace, "FileScout.Scouts", StringComparison.Ordinal)) .ToArray(); foreach (var type in types) { // 抽象クラス・このクラスの場合は何もしない if (type.IsAbstract | type == GetType() | type.GetInterface("IScout") != typeof(IScout)) { continue; } // 調査項目のマージ var scout = (IScout)Activator.CreateInstance(type); ScoutingMethod = ScoutingMethod.Concat(scout.ScoutingMethod) .GroupBy(x => x.Key, (_, x) => x.First()) .ToDictionary(x => x.Key, x => x.Value); } }
/// <summary> /// <see cref="VolumeScout"/> クラスの新しいインスタンスを作成します。 /// </summary> public VolumeScout() { /// 調査項目の定義 ScoutingMethod.Add(key: "バイト長", value: new ByteLengthScoutingMethod()); }
/// <summary> /// <see cref="HashScout"/> クラスの新しいインスタンスを作成します。 /// </summary> public HashScout() { /// 調査項目の定義 ScoutingMethod.Add(key: "ハッシュ(SHA-256)", value: new HashSHA256ScoutingMethod()); }