Calyptus.Mvc.WebFormsViewFactory.GetControlInstance C# (CSharp) Method

GetControlInstance() protected static method

protected static GetControlInstance ( IViewTemplate template ) : IView
template IViewTemplate
return IView
		protected static IView GetControlInstance(IViewTemplate template)
		{
			Type templateType = template.GetType();
			if (_controlTypeCache == null) _controlTypeCache = new Dictionary<Type, Type>();

			Type viewType;
			if (!_controlTypeCache.TryGetValue(templateType, out viewType))
			{
				lock (_controlTypeCache)
				{
					viewType = GetControlType(templateType);
					_controlTypeCache.Add(templateType, viewType);
				}
			}
			if (viewType == null)
				return null;
			else
			{
				object o = System.Activator.CreateInstance(viewType);
				ViewPage p = o as ViewPage;
				if (p != null)
					p.SetTemplate(template);
				else
				{
					ViewControl c = o as ViewControl;
					if (c != null)
						c.SetTemplate(template);
				}
				return (IView)o;
			}
		}