Esempio n. 1
0
 public override void Init(TagHelperContext context)
 {
     ContextAttribute.SetContexts(this, context);
     ContextClassAttribute.SetContext(this, context);
     HtmlAttributeMinimizableAttribute.FillMinimizableAttributes(this, context);
     ConvertVirtualUrlAttribute.ConvertUrls(this, this.ActionContextAccessor);
 }
Esempio n. 2
0
        void AddLibrariesAsDataProcessors(ScriptEngine.HostedScript.Library.StructureImpl dataProcessors)
        {
            System.Collections.Specialized.NameValueCollection appSettings = System.Web.Configuration.WebConfigurationManager.AppSettings;

            foreach (string typeInfo in appSettings.AllKeys)
            {
                string info = typeInfo.Replace(" ", "");
                if (info.StartsWith("attachAsDataProcessor;"))
                {
                    // Запись должна быть вида <key="attachAsDataProcessor;ИмяСборки;ИмяТипа" value="[ИмяОбработки]" />
                    // Если пункта ИмяОбработки нет - получаем из атрибута класса
                    string[] dataProcessorInfo = info.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);

                    if (dataProcessorInfo.Length != 3)
                    {
                        continue;
                    }

                    string typeName          = dataProcessorInfo[2].Trim();
                    string dataProcessorName = appSettings[typeInfo] ?? "";
                    dataProcessorName = dataProcessorName.Replace(" ", "");
                    string assemblyName = dataProcessorInfo[1].Trim();
                    object instance     = Activator.CreateInstance(assemblyName, typeName).Unwrap();

                    if (dataProcessorName == "")
                    {
                        ContextClassAttribute attribute = instance.GetType().GetCustomAttributes(typeof(ContextClassAttribute), false).FirstOrDefault() as ContextClassAttribute;

                        if (attribute != null)
                        {
                            dataProcessorName = attribute.GetName();
                        }
                        else
                        {
                            continue;
                        }
                    }

                    dataProcessors.Insert(dataProcessorName, (IValue)instance);
                }
            }
        }