dotLessパーサは、例外をトラップしてロガーに出力します。これはLessEngine.TransformToCss
で行いドットなしのソースからの抜粋:
public string TransformToCss(string source, string fileName)
{
try
{
Ruleset ruleset = this.Parser.Parse(source, fileName);
Env env = new Env();
env.Compress = this.Compress;
Env env2 = env;
return ruleset.ToCSS(env2);
}
catch (ParserException exception)
{
this.Logger.Error(exception.Message);
}
return "";
}
Less.Parse
は、あなたが使用できるいくつかのプロパティを提供DotlessConfiguration
オブジェクトを受け取るオーバーロードがあります。
public class DotlessConfiguration
{
// Properties
public bool CacheEnabled { get; set; }
public Type LessSource { get; set; }
public Type Logger { get; set; }
public LogLevel LogLevel { get; set; }
public bool MinifyOutput { get; set; }
public int Optimization { get; set; }
public bool Web { get; set; }
}
あなたはそのLogger
わかりますプロパティのタイプはType
です。どのようなあなたがdotless.Core.Loggers.ILogger
を実装する必要があります電源の種類:エラーが解析中に遭遇したとき
public interface ILogger
{
// Methods
void Debug(string message);
void Error(string message);
void Info(string message);
void Log(LogLevel level, string message);
void Warn(string message);
}
我々は最初のスニペットで見たように、ロガーでError
メソッドが呼び出されます。
ここでの1つの固執点は、を実装するタイプのインスタンスがどのようにインスタンス化されるかです。内部的には、dotLessはDLLに焼き付けられたIoCコンテナを使用します。メソッド呼び出しの後、最終的にActivator.CreateInstance
を呼び出してILoggerをインスタンス化するように見えます。
私はこれが少なくとも多少役に立ちますと願っています。
あなたはSquishItを見ましたか? http://www.codethinked.com/post/2010/05/26/SquishIt-The-Friendly-ASPNET-JavaScript-and-CSS-Squisher.aspx –
@qstarin:ありがとうございます。しかし、私はすでにcombres(http: //combres.codeplex.com/)を生産目的で使用することができ、combresはすべてのことを行うことができます(プラスかなりプラス)。しかし、私はまだ開発目的のために上記の私の質問に対する答えが必要です。その理由は、すべてのCSSファイルをまとめてダウンロードして作業するのが好きではなく、別のファイルを好むからです。エラーメッセージを除いて、すべてうまくいきます... –
私は興味がありますが、SquishItが提供している便利な機能は何ですか? Combresのドキュメンテーションを見ると、彼らは多くの同じ仕事をしているようです。しかし、SquishItは処理にdotLessを含める。それで、私はそれを言いました。なぜならあなたはdotLessコンパイルを実行するために別個のアクションを必要としないからです。 –