2016-04-14 8 views
1

MVCアプリケーションと単純なasp.Netクラス(つまり.csファイル)をスキャンできるコンソールアプリケーションを構築しています。 私は単純なC#コードにroslynパーサを使用しましたが、うまく動作しています:)。 今、私はカミソリのファイルをスキャンしたいですが、それはC#のようにroslynコンパイラによってスキャンされていません。レメはあなたの例を与える....これが唯一の@を抽出する方法を... カミソリファイル(CsHtml)からC#コードを抽出するには?

@using System.Text; 
@using Microsoft.ApplicationBlocks.Data; 
@using System.Configuration; 
@using System.Data; 
@using System.Data.SqlClient; 
    ViewBag.Title = "throwEx"; 
} 
<h2>throwEx</h2> 
<h3> 
    @{ 
     string name = ""; 
     string country = ""; 
     string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; 

     List<SqlParameter> parameters = new List<SqlParameter>(); 
     parameters.Add(new SqlParameter("@Name", name)); 
     parameters.Add(new SqlParameter("@Country", country)); 
     int customerId = Convert.ToInt32(SqlHelper.ExecuteScalar(constr, CommandType.Text, "query", parameters.ToArray())); 
    } 
</h3> 

は、ここで私は唯一のC#コードをスキャンしたい..私のカミソリファイルである{*このパートのみ:)}。

+0

を働いていましたか?あなたは「スキャン」のためにどのようなコードを試しましたか?あなたは、ディレクトリを介してコードを頼りにして、ファイルの種類に合わせて、入力引数としてビューを使用したいですか? – ironman

+0

いいえ、特定のエラーが発生していません。私のアプリはWebアプリケーションをスキャンし、インラインクエリを使用しないように開発者に求めているような違反を検出します。代わりにストアドプロシージャを使用する必要があります。コード化する必要があります:)。それは正常な.csページで正常に動作しますが、ここでは単純なテキストドキュメントとして取っているAC#としてこの部分を検出していません:(....私はちょうどこのC#のコードを抽出し、パーサにCs Doc :)しかし、どのように? : –

+0

クイック返信ありがとうございます:) –

答えて

0

引数(ファイル名/その他)を取り込み、ストリームリーダーを使用できるコンソールアプリケーションを作成することができます。 https://msdn.microsoft.com/en-us/library/db5x7c0d(v=vs.110).aspx

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      if (args.Length != 0) 
      { 
       string line = null; 
       string targetStart = "@{"; 
       string targetEnd = "}"; 
       string fileName = args[0]; 

       using (var reader = new StreamReader(fileName)) 
       { 
        line = reader.ReadLine(); 
        if (line.Contains(targetStart)) 
        { 
         while (reader.ReadLine() != targetEnd) 
         { 
          var readLine = reader.ReadLine(); 
          if (readLine != null) Console.WriteLine(readLine.ToString()); 
         } 
        } 
        Console.Read(); 
       } 
      } 

     } 
    } 
} 

**私は.cshtmlでこれをテストし、それはあなたがどのようなエラーを取得している

関連する問題