using System; using dnlib.DotNet; namespace Confuser.Core.Project.Patterns { /// /// A function that compare the module of definition. /// public class ModuleFunction : PatternFunction { internal const string FnName = "module"; /// public override string Name { get { return FnName; } } /// public override int ArgumentCount { get { return 1; } } /// public override object Evaluate(IDnlibDef definition) { if (!(definition is IOwnerModule) && !(definition is IModule)) return false; object name = Arguments[0].Evaluate(definition); if (definition is IModule) return ((IModule)definition).Name == name.ToString(); return ((IOwnerModule)definition).Module.Name == name.ToString(); } } }