private PluginExecutionFakeContext(Type pluginType, Guid?userId) { this.userId = userId; this.pluginMethodCache = new Kipon.Fake.Xrm.Reflection.PluginMethod.Cache(pluginType.Assembly); this.orgServiceFactory = new Services.OrganizationServiceFactory(this); var pt = this.orgServiceFactory as Microsoft.Xrm.Sdk.IProxyTypesAssemblyProvider; if (pt != null) { pt.ProxyTypesAssembly = pluginType.Assembly; } this.traceService = new Services.TracingService(); var key = $"{pluginType.FullName}:null:null"; if (plugins.ContainsKey(key)) { this.plugin = plugins[key]; } else { this.plugin = (Microsoft.Xrm.Sdk.IPlugin)System.Activator.CreateInstance(pluginType); plugins[key] = this.plugin; Kipon.Fake.Xrm.Reflection.Types.Instance.SetAssembly(this.plugin.GetType().Assembly); } }
private PluginExecutionFakeContext(Type pluginType, Guid?userId, string unsecureConfig, string secureConfig) : this(pluginType, userId) { this.unsecureConfig = unsecureConfig; this.secureConfig = secureConfig; var key = $"{pluginType.FullName}:{(this.unsecureConfig == null ? "null":this.unsecureConfig)}:{(this.secureConfig != null ? this.secureConfig : "null")}"; if (plugins.ContainsKey(key)) { this.plugin = plugins[key]; } else { this.plugin = (Microsoft.Xrm.Sdk.IPlugin)System.Activator.CreateInstance(pluginType); plugins[key] = this.plugin; } this.plugin = (Microsoft.Xrm.Sdk.IPlugin)System.Activator.CreateInstance(pluginType, new object[] { unsecureConfig, secureConfig }); Kipon.Fake.Xrm.Reflection.Types.Instance.SetAssembly(plugin.GetType().Assembly); }