/// <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");
        }
Example #3
0
 /// <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);
            }
        }
Example #6
0
 /// <summary>
 /// <see cref="VolumeScout"/> クラスの新しいインスタンスを作成します。
 /// </summary>
 public VolumeScout()
 {
     /// 調査項目の定義
     ScoutingMethod.Add(key: "バイト長", value: new ByteLengthScoutingMethod());
 }
Example #7
0
 /// <summary>
 /// <see cref="HashScout"/> クラスの新しいインスタンスを作成します。
 /// </summary>
 public HashScout()
 {
     /// 調査項目の定義
     ScoutingMethod.Add(key: "ハッシュ(SHA-256)", value: new HashSHA256ScoutingMethod());
 }