protected ClVariable GetVariableFromViewAndAttribute(T view, LayoutAttribute attribute) { ClVariable variable = null; var viewAndAttribute = new ViewAndLayoutAttribute <T> (view, attribute); if (!variables.TryGetValue(viewAndAttribute, out variable)) { var value = viewEngine.GetAttribute(view, attribute); var name = string.Format("{0}.{1}", viewEngine.GetViewName(view), attribute.ToString()); variable = new ClVariable(name, value); variables.Add(viewAndAttribute, variable); } return(variable); }