Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用无点asp.net检索较少的变量_C#_Asp.net_Less - Fatal编程技术网

C# 如何使用无点asp.net检索较少的变量

C# 如何使用无点asp.net检索较少的变量,c#,asp.net,less,C#,Asp.net,Less,我正在使用无点库编译asp.net网站中的.less文件。我想通过名称得到某个变量的值 例如,我有如下代码: @FONT_SIZE: 10px; @TEXT_COLOR: red; 那么,如何通过“字体大小”名称获得字体大小? 我在Env类中找到FindVariable方法,但我不知道如何使用它。我想知道您的Env是否是静态的(需要读取您的值)。我认为您应该将less文件作为文本读取,并使用正则表达式之类的东西来获取您的值。 请参阅:如何读取较少的文件。 这里将讨论相同的问题:我已使用以下代码

我正在使用无点库编译asp.net网站中的.less文件。我想通过名称得到某个变量的值

例如,我有如下代码:

@FONT_SIZE: 10px;
@TEXT_COLOR: red;
那么,如何通过“字体大小”名称获得字体大小?
我在Env类中找到FindVariable方法,但我不知道如何使用它。

我想知道您的Env是否是静态的(需要读取您的值)。我认为您应该将less文件作为文本读取,并使用正则表达式之类的东西来获取您的值。 请参阅:如何读取较少的文件。
这里将讨论相同的问题:

我已使用以下代码解决了我的问题:

string GetLessVariableByName(string name, string lessContent) {
    int optimisation = 1;
    Func<IStylizer> defaultStylizer = () => new PlainStylizer();
    Func<IImporter> defaultImporter = () => new Importer();
    Func<Parser> defaultParser = () => new Parser(optimisation, defaultStylizer(), defaultImporter());
    Func<Env> defaultEnv = () => { return new Env(); };
    Env env = defaultEnv();
    Parser parser = defaultParser();
    var tree = parser.Parse(lessContent.Trim(), "tmp.less");
    var rule = tree.Rules.ToArray()[0];
    Node node = rule.Evaluate(env);
    var variableValue = tree.Variable(name, node);

    return variableValue == null ? null : variableValue.Value.ToString();
}
string GetLessVariableByName(string名称,string lessContent){
整数优化=1;
Func DefaultStyleizer=()=>新的PlainStyleizer();
Func defaultImporter=()=>newimporter();
Func defaultParser=()=>新解析器(优化,defaultstylezer(),defaultImporter());
Func defaultEnv=()=>{returnnewenv();};
Env Env=defaultEnv();
Parser=defaultParser();
var tree=parser.Parse(lessContent.Trim(),“tmp.less”);
var rule=tree.Rules.ToArray()[0];
Node=rule.Evaluate(env);
var variableValue=tree.Variable(名称、节点);
返回variableValue==null?null:variableValue.Value.ToString();
}
是的,我会使用:

int优化=1;
Func DefaultStyleizer=()=>新的PlainStyleizer();
Func defaultImporter=()=>newimporter();
Func defaultParser=()=>新解析器(优化,defaultstylezer(),defaultImporter());
Func defaultEnv=()=>{returnnewenv();};
Env Env=defaultEnv();
Parser=defaultParser();
var tree=parser.Parse(lessContent.Trim(),“tmp.less”);
var rule=tree.Rules.ToArray()[0];
Node=rule.Evaluate(env)

但问题是,在var rule=tree.Rules.ToArray()[0]上,ToArray()从何而来;线路

谢谢,
Jason

您是否在预编译.less文件时遇到问题,还是只想知道如何使用.less变量?我想使用以下代码:Env Env=new Env();字符串结果=env.FindVariable(“FONT_SIZE”).Value.ToString();谢谢,我会试着用它。