/// <summary>
 ///     Constructs a new instance of the given type, and return it cast to the specified type.
 /// </summary>
 /// <param name="dynamicTypeFactory">The dynamic type factory to use.</param>
 /// <param name="type">The type to instantiate.</param>
 /// <param name="args">The arguments to pass to the constructor.</param>
 /// <typeparam name="T">The type that the instance will be cast to.</typeparam>
 /// <returns>Newly created object, cast to <typeparamref name="T"/>.</returns>
 internal static T CreateInstanceUnchecked <T>(
     this IDynamicTypeFactoryInternal dynamicTypeFactory,
     Type type,
     object[] args)
 {
     DebugTools.Assert(typeof(T).IsAssignableFrom(type), "type must be subtype of T");
     return((T)dynamicTypeFactory.CreateInstanceUnchecked(type, args));
 }
Esempio n. 2
0
        public IDictionary <string, ITextMacro> GetMacrosForLanguage(string languageTag)
        {
            var languageMacros = new Dictionary <string, ITextMacro>();

            foreach (var registeredMacro in Macros)
            {
                if (IsMacroForLanguage(languageTag, registeredMacro))
                {
                    // TODO Handle duplicate macros?
                    languageMacros.Add(registeredMacro.MacroName, _typeFactory.CreateInstanceUnchecked <ITextMacro>(registeredMacro.MacroType));
                }
            }

            return(languageMacros);
        }