public CryptoPolicy(IEnumerable <Assembly> extraAssemblies) { IEnumerable <Type> policyTypes = TypeDiscovery.Interface(typeof(ICryptoPolicy), extraAssemblies); foreach (Type policyType in policyTypes) { ICryptoPolicy instance = Activator.CreateInstance(policyType) as ICryptoPolicy; _policies.Add(instance.Name, instance); } }
public ICryptoFactory Create(ICryptoPolicy policy) { if (policy == null) { throw new ArgumentNullException("policy"); } lock (_factories) { return(policy.DefaultCryptoFactory(_factories.Values.OrderByDescending(f => f().Priority))); } }