2016-04-14 16 views
1

MVC uygulamalarını ve basit asp.Net sınıflarını (örn. .cs dosyası) tarayabilen bir Konsol uygulaması yapıyorum. Basit C# kodu için roslyn ayrıştırıcısını kullandım ve iyi çalışıyor :). Şimdi jilet dosyalarını taramak istiyorum ancak C# ile olduğu gibi roslyn derleyicisi tarafından taranmıyor. Leme Size bir örnek vermek .... bu sadece @ ayıklamak için nasıl .. Jilet dosyalarından C# kodu nasıl elde edilir (CsHtml)?

@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> 

Burada ben sadece C# kodu taramak istediğiniz .. benim Jilet dosyasıdır {* Bu bölümünde sadece :)}.

+0

çalıştı? 'Tarama' için hangi kodu denediniz? Kodun bir dizinden başvuruda bulunmasını ve dosya türleriyle eşleşmesini istiyor musunuz, görünümü giriş argümanı olarak kullanıyorsunuz ....? – ironman

+0

Hayır özel bir hata almıyorum, şey benim uygulama web uygulamaları tarayacak ve geliştiricilerin Inline Queries kullanmamaları için geliştiricilerin istediği gibi herhangi bir ihlali algılayacaktır. Bu durumda, eğer bunları yazmışlarsa kod bir boşluk oluşturması gerekir :). ve normal .cs sayfalarında gayet iyi çalışıyor ancak burada snippet'in bu bölümünü basit metin belgesi olarak alıyoruz: (.... sadece bu C# kodunu ayıklamak ve Ayrıştırıcıya Cs Doc :) ama nasıl? :( –

+0

ve hızlı cevap için teşekkürler :) –

cevap

0

Bağımsız değişkenler (dosya adları/diğer) alabilecek bir konsol uygulaması yazmak ve bir akış okuyucusu kullanmak isteyebilirsiniz. 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(); 
       } 
      } 

     } 
    } 
} 

** Ben .cshtml bu test edilmiş ve bunu alıyorsanız hangi hataları

İlgili konular