Существует несколько способов сделать это. В моем случае как меньше, так и динамические параметры хранятся в БД. Вы можете сделать что-то вроде этого, если вы хотите изменить цвет шестнадцатеричного кода, например:
var parser = new dotless.Core.Parser.Parser();
var env = new dotless.Core.Parser.Infrastructure.Env { Compress = true, Debug = true, KeepFirstSpecialComment = false, DisableVariableRedefines = false };
var tree = parser.Parse(css.Detail.Text, null);
foreach (var key in layout.LessDetails.CurrentValues.Keys)
{
var rule = tree.Variable("@" + key, tree);
if (rule != null)
{
string value = layout.LessDetails.CurrentValues[key];
if (value != null && value.StartsWith("#"))
{
rule.Value = new dotless.Core.Parser.Tree.Color(value.TrimStart('#'));
}
}
}
css.Detail.GeneratedText = tree.ToCSS(env);
Это не конец всего решения, так как существует много других типов параметров, но это должно привести вас в правом направление. Посмотрите в dotless.Core.Parser.Functions для получения полезной информации о различных вариантах.
В качестве альтернативы существует еще один простой вариант. С помощью приведенного выше кода вы можете просто добавить измененные переменные в конец строки css.Detail.Text. Это на самом деле способ, которым метод modifyVars работает в файле less.js. Снова добавив параметры в конце, он отменяет предыдущие установленные значения.
можно использовать здесь метод синтаксического анализа. если можно, то как это сделать? пожалуйста, предоставьте мне помощь. –
Что вы понимаете под методом парсинга? Что вы хотите разобрать? Просьба пояснить, с удовольствием помогу. – Ani
да разбор. Благодарю. как мы можем это сделать? на самом деле это требование. –