예제 #1
0
        public void GenerateAndStore(List <Type> concreteTypeList)
        {
            var ret = new StringBuilder();

            AppendHeader(ret, concreteTypeList);
            AppendBody(ret, concreteTypeList);
            AppendFooter(ret);

            MemoryDiskHelper.CreateTextFileForce(_path, ret.ToString());
        }
예제 #2
0
        public void GenerateAndStore(List <GenInfo> infoList)
        {
            var ret = new StringBuilder();

            AppendHeader(ret, infoList);
            AppendBody(ret, infoList);
            AppendFooter(ret);

            var path = $"{_filePath}";

            MemoryDiskHelper.CreateTextFileForce(path, ret.ToString());
        }
예제 #3
0
파일: IocHelper.cs 프로젝트: mjfard/IocSpy
        public void Gen(bool genSpy)
        {
            var baseTestPath = $"{_testProjPath}\\_IocSpy";
            var baseTestNs   = $"{_testProjDefaultNs}._IocSpy";

            foreach (var proj in _csProjInfoList)
            {
                var baseProjPath = $"{proj.Path}\\_Ioc";
                var projName     = proj.DefaultNs.Split('.').Last();

                MemoryDiskHelper.CreateDirIfNotExists(baseProjPath);

                var genInfoList = IocHelperMethods.GetGenInfoList(proj.Asembly);

                var iocInfoList = genInfoList.Where(i => i.LifeTime != null).ToList();

                var iocNs = $"{proj.DefaultNs}._Ioc";

                new IocConfigGenerator($"{baseProjPath}\\IocConfigGen.cs", iocNs)
                .GenerateAndStore(iocInfoList);

                new IocTypesGenerator($"{baseProjPath}\\IocTypesGen.cs", iocNs)
                .GenerateAndStore(iocInfoList.Select(i => i.Concrete).ToList());

                if (genSpy)
                {
                    var spiesDir = $"{baseTestPath}\\{projName}\\SpiesGen";
                    var spiesNs  = $"{baseTestNs}.{projName}.SpiesGen";

                    MemoryDiskHelper.CreateDirIfNotExists(spiesDir);

                    var extractor = new Extractor(genInfoList);
                    var generator = new SpyGenerator(spiesDir, spiesNs);

                    MemoryDiskHelper.EmptyDirRecursive(spiesDir);

                    var spyInfoList = extractor.Extract();
                    foreach (var info in spyInfoList)
                    {
                        generator.GenerateAndStore(info);
                    }

                    new SpyIocConfigGenerator(
                        $"{baseTestPath}\\{projName}\\SpyIocConfigGen.cs",
                        $"{baseTestNs}.{projName}",
                        spiesNs,
                        iocNs

                        ).GenerateAndStore(iocInfoList);
                }
            }
        }
예제 #4
0
        public void GenerateAndStore(SpyGenInfo info)
        {
            var ret = new StringBuilder();

            AppendHeader(ret, info);
            AppendProps(ret, info.MethodInfos.OfType <PropInfo>().ToList());
            AppendMethods(ret, info.MethodInfos.OfType <MethodInfo>().ToList());
            AppendFooter(ret);

            var path = $"{_destDir}\\{info.FileName}.cs";

            MemoryDiskHelper.CreateTextFileForce(path, ret.ToString());
        }