コード例 #1
0
        public void Rewrite(AssemblyDefinition ass, AssemblyDefinition[] inserts)
        {
            var ins = inserts.ToDictionary(k => k.GetAttribute <AMA>().First(
                                               a => a.Key == Defaults.Replaces).Value.ToLowerInvariant(), v => v);
            var iocProc = new IocProcessor();

            ass.AddOrReplaceModuleSetup(iocProc.AddOrReplaceIoc);
            foreach (var myRef in ass.GetAllExternalRefs().ToArray())
            {
                AssemblyDefinition insAss;
                var assName = myRef as AssemblyNameReference;
                if (assName != null && ins.TryGetValue(assName.Name.ToLowerInvariant(), out insAss))
                {
                    assWire.Rewrite(ass, assName, insAss, iocProc);
                }
                var modName = myRef as ModuleReference;
                if (modName != null && ins.TryGetValue(modName.Name.ToLowerInvariant(), out insAss))
                {
                    modWire.Rewrite(ass, modName, insAss, iocProc);
                }
            }
        }