/// <summary> /// Creates a new authorise reference strategy. /// </summary> /// <param name="typeName"></param> /// <returns></returns> public IAuthoriseReferenceStrategy NewReferenceAuthoriser(string typeName1, string propertyName1, string typeName2, string propertyName2) { IAuthoriseReferenceStrategy strategy = null; using (LogGroup logGroup = LogGroup.StartDebug("Creating a new authorise reference strategy.")) { LogWriter.Debug("Type name 1: " + typeName1); LogWriter.Debug("Property name 1: " + propertyName1); LogWriter.Debug("Type name 2: " + typeName2); LogWriter.Debug("Property name 2: " + propertyName2); AuthoriseReferenceStrategyLocator locator = new AuthoriseReferenceStrategyLocator(StrategyState.Strategies); StrategyInfo strategyInfo = locator.Locate(typeName1, propertyName1, typeName2, propertyName2); if (strategyInfo != null) { strategy = strategyInfo.New <IAuthoriseReferenceStrategy>(); } } return(strategy); }