private void AttemptActivatePolicy(ItemPolicy policy) { if (this._policies.ContainsKey(policy.GetType())) { return; } ItemPolicyConnector.PolicyData policyData = new ItemPolicyConnector.PolicyData(); policyData.Validator = new RequirementValidator(this._manager, policy.GetType()); policyData.Policy = policy; this._policies[policy.GetType()] = policyData; if (policyData.Validator.MeetsRequirements) { this.ActivatePolicy(policyData); } else { policyData.Validator.RequirementsChanged += new EventHandler(this.OnPolicyRequirementsChanged); } }