主婦と.NETと犬のぶろぐ

奥様 と プログラム と お犬様 の 楽しい日常

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

CodeDom で遊んでみた。

ひまひまシリーズその 3。
今更ながら、System.CodeDom 名前空間の下のいくつかのクラスを使って
プログラムを組んでみました。
これ、慣れるまでには何回か組まないとコツがつかめないっぽい。
脳内でジェネレートされるプログラムを組み立てながらやったので(こんなお粗末なプログラムだが...)そのせいかも。

でも簡単な奴だったら Text ファイルなんかにテンプレート書いておいて
String.Format でやった方が楽かもしれない。

しかし、System.CodeDom.Compiler.CodeDomProvider に突っ込むオブジェクトの実態によって
C# やら VB やら複数種類のコード出力が可能なのは結構魅力的だと思いました。

ちょっと疑問な点が。
・コードに出力される Option Strict とかの設定はいったいどのオブジェクトがもっているの?
 Microsoft.VisualBasic.VBCodeProvider が持っててよさそうな感じはするんだけどなぁ。
・Property の Set にパラメータが生成されない。CodeAssignStatement じゃだめなの?

CodeDomTest.vb

Public Class CodeDomTest
    Public Sub Generate()
        Dim compileUnit As System.CodeDom.CodeCompileUnit = _
        New System.CodeDom.CodeCompileUnit()

' NameSpace Dim nmspace As System.CodeDom.CodeNamespace = _ New System.CodeDom.CodeNamespace("CodeDomTry") compileUnit.Namespaces.Add(nmspace)
' Imports nmspace.Imports.Add( _ New System.CodeDom.CodeNamespaceImport("System"))
' Class Dim cls As System.CodeDom.CodeTypeDeclaration = _ New System.CodeDom.CodeTypeDeclaration("CodeDomSample") nmspace.Types.Add(cls) cls.Comments.Add(New System.CodeDom.CodeCommentStatement("これはクラスヘッダのコメント")) cls.IsClass = True ' Inherits cls.BaseTypes.Add(GetType(Object)) ' Implements(VB の場合最後に付ける) cls.BaseTypes.Add(GetType(IDisposable))
' Constructor Dim constructor As System.CodeDom.CodeConstructor = _ New System.CodeDom.CodeConstructor() cls.Members.Add(constructor) constructor.Attributes = CodeDom.MemberAttributes.Public constructor.Comments.Add(New System.CodeDom.CodeCommentStatement("これはコンストラクタのコメント")) ' CodeConstructor の場合、自動で MyBase.New() が付加される。New という名前も勝手に付けてくれる 'constructor.Statements.Add( _ 'New System.CodeDom.CodeMethodInvokeExpression( _ ' New System.CodeDom.CodeBaseReferenceExpression(), "New", New System.CodeDom.CodeExpression() {}))
' Field Dim field As System.CodeDom.CodeMemberField = _ New System.CodeDom.CodeMemberField(GetType(String), "m_propertyTest") cls.Members.Add(field) field.Comments.Add(New System.CodeDom.CodeCommentStatement("これはメンバ変数のコメント"))
' Property Dim prop As System.CodeDom.CodeMemberProperty = _ New System.CodeDom.CodeMemberProperty() cls.Members.Add(prop) prop.Comments.Add(New System.CodeDom.CodeCommentStatement("これはプロパティのコメント")) prop.Name = "PropertyTest" prop.Type = New System.CodeDom.CodeTypeReference(GetType(String)) prop.Attributes = CodeDom.MemberAttributes.Public
Dim getter As System.CodeDom.CodeMethodReturnStatement = _ New System.CodeDom.CodeMethodReturnStatement() getter.Expression = New System.CodeDom.CodeFieldReferenceExpression( _ New System.CodeDom.CodeThisReferenceExpression(), field.Name) prop.GetStatements.Add(getter)
Dim setter As System.CodeDom.CodeAssignStatement = _ New System.CodeDom.CodeAssignStatement() setter.Left = New System.CodeDom.CodeFieldReferenceExpression( _ New System.CodeDom.CodeThisReferenceExpression(), field.Name) setter.Right = New System.CodeDom.CodePropertySetValueReferenceExpression() prop.SetStatements.Add(setter)
' Method Dim method As System.CodeDom.CodeMemberMethod = _ New System.CodeDom.CodeMemberMethod() cls.Members.Add(method) method.Comments.Add(New System.CodeDom.CodeCommentStatement("これはメソッドヘッダのコメント")) method.Name = "TestMethod" method.ReturnType = New System.CodeDom.CodeTypeReference(GetType(String)) method.Attributes = CodeDom.MemberAttributes.Public
Dim methodParameter As System.CodeDom.CodeParameterDeclarationExpression = _ New System.CodeDom.CodeParameterDeclarationExpression(GetType(Date), "value") method.Parameters.Add(methodParameter)
Dim methodComment As System.CodeDom.CodeCommentStatement = _ New System.CodeDom.CodeCommentStatement("これはメソッド内のコメントです") method.Statements.Add(methodComment)
Dim methodResultStatement As System.CodeDom.CodeMethodReturnStatement = _ New System.CodeDom.CodeMethodReturnStatement( _ New System.CodeDom.CodeMethodInvokeExpression( _ New System.CodeDom.CodeTypeReferenceExpression(methodParameter.Name), _ "ToString", New System.CodeDom.CodePrimitiveExpression("yyyy/MM/dd HH:mm:ss"))) method.Statements.Add(methodResultStatement)
' Implementation Method Dim methodImple As System.CodeDom.CodeMemberMethod = _ New System.CodeDom.CodeMemberMethod() cls.Members.Add(methodImple) methodImple.Name = "Dispose" methodImple.Attributes = CodeDom.MemberAttributes.Public methodImple.ImplementationTypes.Add(GetType(IDisposable)) methodImple.Statements.Add(New System.CodeDom.CodeCommentStatement("TODO:実装してください"))
' Override Method Dim methodoverride As System.CodeDom.CodeMemberMethod = _ New System.CodeDom.CodeMemberMethod() cls.Members.Add(methodoverride) methodoverride.Name = "ToString" methodoverride.ReturnType = New System.CodeDom.CodeTypeReference(GetType(String)) methodoverride.Attributes = CodeDom.MemberAttributes.Public Or CodeDom.MemberAttributes.Override methodoverride.Statements.Add(New System.CodeDom.CodeMethodReturnStatement( _ New System.CodeDom.CodeFieldReferenceExpression( _ New System.CodeDom.CodeThisReferenceExpression(), field.Name)))
' Generate Dim provider As System.CodeDom.Compiler.CodeDomProvider = _ New Microsoft.VisualBasic.VBCodeProvider 'New Microsoft.CSharp.CSharpCodeProvider() Dim generateOptions As System.CodeDom.Compiler.CodeGeneratorOptions = _ New System.CodeDom.Compiler.CodeGeneratorOptions() generateOptions.BlankLinesBetweenMembers = True generateOptions.IndentString = ControlChars.Tab generateOptions.VerbatimOrder = True
provider.GenerateCodeFromCompileUnit(compileUnit, Console.Out, generateOptions) End Sub End Class

生成されたコード


'------------------------------------------------------------------------------
' <auto-generated>
'     このコードはツールによって生成されました。
'     ランタイム バージョン:2.0.50727.832
'
'     このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
'     コードが再生成されるときに損失したりします。
' </auto-generated>
'------------------------------------------------------------------------------

Option Strict Off Option Explicit On
Imports System
Namespace CodeDomTry
'これはクラスヘッダのコメント Public Class CodeDomSample Inherits Object Implements System.IDisposable
'これはコンストラクタのコメント Public Sub New() MyBase.New End Sub
'これはメンバ変数のコメント Private m_propertyTest As String
'これはプロパティのコメント Public Overridable Property PropertyTest() As String Get Return Me.m_propertyTest End Get Set Me.m_propertyTest = value End Set End Property
'これはメソッドヘッダのコメント Public Overridable Function TestMethod(ByVal value As Date) As String 'これはメソッド内のコメントです Return value.ToString("yyyy/MM/dd HH:mm:ss") End Function
Public Overridable Sub Dispose() Implements System.IDisposable.Dispose 'TODO:実装してください End Sub
Public Overrides Function ToString() As String Return Me.m_propertyTest End Function End Class End Namespace

投稿日時 : 2007年9月27日 16:33

Feedback

# re: CodeDom で遊んでみた。 2007/09/27 16:35 シャノン

CodeDom からコードを生成するのはいいんですが、コードから CodeDom を生成する方法がありません。どうにも絶望です。

# re: CodeDom で遊んでみた。 2007/09/27 16:37 囚人

>CodeDom からコードを生成するのはいいんですが、コードから CodeDom を生成する方法がありません。どうにも絶望です

コンパイラになってしまう。

# re: CodeDom で遊んでみた。 2007/09/27 16:50 επιστημη

おもしょいなー♪
Attributeのくっつけかたも教えてくれさい。
テストコードの自動生成みたいなことやれそな希ガス。

# re: CodeDom で遊んでみた。 2007/09/27 17:20 なおこ(・∀・)

>> シャノンさん、囚人さん
卵と鶏?

>> επιστημη さん
' Class
Dim cls As System.CodeDom.CodeTypeDeclaration = _
New System.CodeDom.CodeTypeDeclaration("CodeDomSample")
'nmspace.Types.Add(cls)
cls.CustomAttributes.Add(New System.CodeDom.CodeAttributeDeclaration( _
New System.CodeDom.CodeTypeReference(GetType(System.ObsoleteAttribute)), _
New System.CodeDom.CodeAttributeArgument("", New System.CodeDom.CodePrimitiveExpression("このクラスは古いです"))))

こうすると、
出力時に
<System.ObsoleteAttribute("このクラスは古いです")> _
Public Class CodeDomSample
となります。

クラスやらメソッドやらのオブジェクトの
CustomAttributes プロパティに Add してやればよさげみたいです。
...こういう事であってますか...?

# re: CodeDom で遊んでみた。 2007/09/27 19:33 επιστημη

あっざーす。それでぢゅーぶんです。

# re: CodeDom で遊んでみた。 2007/09/28 0:56 Streetw☆

CodeDomって知ってても使ったこと無かったので勉強になりました~
恩返し(?)ができればと、いろいろ探し回って見ました。
#なおこ(・∀・) さんのエントリが増えるんだったら、ひまひまなのも悪くないかもって不謹慎なことを考えながらw

>コードに出力される Option Strict とかの設定
UserDataみたいです。

'Option Strict On は…
compileUnit.UserData("RequireVariableDeclaration") = True
'Option Explicit On は…
compileUnit.UserData("AllowLateBound") = False

>Property の Set にパラメータが生成されない。
CodeDomにはSetのパラメータを付ける機能は無いみたいですね。

ここのコメント欄でほんの少しだけ触れられていました。
この人達、誰か知らないけどw
http://www.devcity.net/Articles/71/codedom_1.aspx

VBの文法上、C#と同じく引数の記述は不要みたいで、付くのはVSの心遣いwのようです。
生成されたコードをVSに貼り付けると、自動的に追加されますね。

試しに、VSのオプションの「テキストエディタ」の「Basic」の「VB 固有」のところで「コードの再フォーマット」のチェックを外すと、Setと書いても引数が自動的に付けられたりせず、付けなくてもビルドは正常にできました。

# re: CodeDom で遊んでみた。 2007/09/28 11:11 シャノン

> コンパイラになってしまう。

うんうん。
コンパイラっちゅーよりも構文木つくるとこまででいいんですけどね。
コンパイラになってしまっていいじゃないですか。っていうか、コンパイラのコードを流用すればできるのに、なんでやってくれないんですかと。

# re: CodeDom で遊んでみた。 2007/09/28 16:49 なおこ(・∀・)

>> επιστημη さん
よかったです。

>> Streetw☆ さん
情報ありがとうございます。勉強になります。
Option Strict とかの設定、そんな隠れたところに持たんでも、、、という感じですね。

Set メソッドについて触れていると教えてくださったページは結構詳しく CodeDom について書いていますね。

たしかに、生成したコードをそのままコンパイルしても
VB コンパイラには何も怒られないのは確認してました。
きもりわりぃですけどねw

>> シャノンさん
この本が結構おもしろいと VB コンパイラ開発に携わった方に教えてもらったのですが、
http://www.amazon.com/Code-Generation-Microsoft-Kathleen-Dollard/dp/1590591372
興味はあるものの、実物がかなり分厚い英語の書籍なので
まだ手を出せないでいます。。。
誰か翻訳書籍を書いてくれないかなぁ。

# re: 無意味なコメント(前回ソースゴミのエントリーの延長線) 2017/07/24 11:43 zzzzz

http://www.nbajerseys.us.org/
http://www.pandorajewelryoutlets.in.net/
http://www.uggboots-forwomen.in.net/
http://www.nikeshoes2017.us.com/
http://www.michaelkors-handbags.org.uk/
http://www.nikeshoesoutlet.us.org/
http://indianapoliscolts.jerseyscheap.us.com/
http://www.louisvuitton-sacpascher.fr/
http://www.dolceandgabbana.in.net/
http://www.cheapray-banssunglasses.us.com/
http://chicagobears.jerseyscheap.us.com/
http://www.coachoutlet-storeonline.com.co/
http://www.fitflopssale-clearances.us.com/
http://www.uggsforwomen.eu.com/
http://www.kate-spadehandbags.us.com/
http://www.true-religionoutlets.us.com/
http://www.eccoshoesoutlet.us/
http://www.nikehuarache2017.in.net/
http://www.montblancpensoutlet.com.co/
http://www.nikestores.org.uk/
http://www.chaussurelouboutinpas-cher.fr/
http://atlantafalcons.jerseyscheap.us.com/
http://www.christianlouboutinoutlets.us/
http://www.nhljerseyswholesaler.us.com/
http://www.fitflopsclearancesale.us.com/
http://www.polo-outlets.us.com/
http://newenglandpatriots.jerseyscheap.us.com/
http://www.nikeoutlet-stores.us.com/
http://www.nikeblazerlow.fr/
http://www.nikefactorystore.us.com/
http://www.prada-shoes.us.com/
http://www.replicawatchesforsale.us.com/
http://www.redvalentino.in.net/
http://www.ugg-slippers.de.com/
http://www.uggs-forwomen.de.com/
http://www.conversetrainer.org.uk/
http://www.uggs-onsale.eu.com/
http://sanfrancisco49ers.jerseyscheap.us.com/
http://www.cheapjordanshoes.in.net/
http://neworleanssaints.jerseyscheap.us.com/
http://www.truereligionjeansoutletonline.us.com/
http://www.ugg-slippers.eu.com/
http://www.michaelkors-handbagswholesale.in.net/
http://www.new-balanceshoes.in.net/
http://www.michaelkorshandbagswholesale.in.net/
http://www.ralph-laurenoutlets.us.com/
http://miamidolphins.jerseyscheap.us.com/
http://www.coachoutletstore-online.eu.com/
http://www.raybanssunglasses.net.co/
http://www.oakleysunglassesoutlete.us.com/

# yezi20160620@163.com 2017/09/27 18:40 wwwww

http://www.reebokoutlet.us.org
http://www.adidastubular.us.com
http://www.nikezoom.us.com
http://www.airmax90.us.org
http://www.nike-airmax90.uk
http://www.nikemercurial.us.com
http://www.basketball-shoes.us.com
http://www.converseoutlet.us.com
http://www.airjordan.us.com
http://www.jordan11retro.us.com
http://www.michaelkorshandbagssale.us.org
http://www.nikezoom.me.uk
http://www.jordanshoes.uk
http://www.nfljerseys.us.org
http://www.adidasstansmith.uk
http://www.adidasultraboost.us.org
http://www.lacosteonlineshop.us.com
http://www.jordan6.us.com
http://www.jordan4.us.com
http://www.adidas-eqt.us.com
WWW

# re: [Tips][Visual Studio]Visual Studio 2008で、ソースコードの行数をカウントする方法 2017/09/29 9:53 chenlina

http://www.oakleysunglassessport.us.com
http://www.longchampoutlet-online.com
http://www.uggbootsclearances.com.co
http://www.truereligionjeans-outlet.us.com
http://www.truereligionsale.com.co
http://www.ray-bansunglassesoutlets.us.com
http://www.ugg.com.co
http://www.louisvuitonnoutlet.com
http://www.hollisterclothing.us.org
http://www.northfaceoutletstore.us.org
http://www.hermesoutlets.us.com
http://www.outletugg.com.co
http://www.canadagoosesale.com.co
http://www.cheap-jordan-shoes.us.com
http://www.newbalance-shoes.us.com
http://www.pololaurenshirts.com
http://www.michaelkorsoutletsonlinesale.us.com
http://www.wwwuggaustralia.co.uk
http://www.pandora-charms-canada.ca
http://www.swarovski-jewelry.name
http://www.ugg-outlets.com.co
http://www.coachoutlet70off.us.com
http://www.truereligion-jeans.com.co
http://www.michaelkorsoutletoff.us.com
http://www.fitflops.org
http://www.coachoutletonlineshopping.us.org
http://www.baseballjerseys.us.com
http://www.toryburchoutletsonline.us.com
http://www.northfacejacket.us.com
http://www.ugg.me.uk
http://www.ray-bansunglassesoutlet.com.co
http://www.ray-bansunglasses2017.us.com
http://www.ralphlaurenoutlet-poloshirts.us.com
http://www.oakleysunglassesofficialsite.us.com
http://www.ralphlauren.eu.com
http://www.poloralphlaurenoutletoff.us.com
http://www.uggboots-onsale.us
http://www.oakleysunglasses2017.us.com
http://www.nikeblazers.us
http://www.pandorajewelryoutlet.us.org
http://www.cheapjordansshoes.us.com
http://www.nikeairjordans.co.uk
http://www.uggbootsaustralia.in.net
http://www.salomon-shoes.in.net
http://www.uggsaustraliaboots.us.com
http://www.uggsclassicboots.us.com
http://www.ugg-italia.it
http://www.hermesbirkinhandbags.us.com
http://www.christianlouboutin.name
http://www.tommy-hilfiger-canada.ca
http://www.uggsadd.com
http://www.mlbjerseyswholesale.us.com
http://www.nikerosherunsale.co.uk
http://www.officialcoachfactoryoutletonline.us.com
http://www.canadagoose.com.co
http://www.michaelkorsuk.me.uk
http://www.raybanpascher.fr
http://www.nikeoff.com
http://www.ferragamooutlet.us.com
http://versace.sunglassescheap.us.com
http://www.ray-ban-sunglasses.com.au
http://www.jordans-fusion.com
http://www.coach-outlet.nom.co
http://www.adidasoutletstore.net
http://www.wholesale-nfl-jerseys.us
http://www.adidasstansmith.co.uk
http://www.oakley-sunglassesonsale.us.com
http://www.michaelkors--outlet.us.org
http://www.ukuggboots.co.uk
http://www.outletthenorthface.us.com
http://www.pandoracharmjewelry.us.com
http://www.coachoutletstoreonlineofficial.us.com
http://www.burberryoutlet-canada.ca
http://www.uggsaustralia.it
http://www.northface-clearance.us
http://www.fitflopssaleclearance.us.org
http://www.uggfactoryoutlet.com.co
http://www.redbottoms.org.uk
http://www.michaelkorshandbags.nom.co
http://www.burberryusa.us.com
chenlin20170929

# re: CodeDom で遊んでみた。 2017/11/28 12:00 cc

http://www.nike-airmax2017.us.com
http://www.vans-outlet.us.com
http://www.yeezy-shoes.us
http://www.supremeclothing.us
http://www.nikedunks.us.org
http://www.yeezyshoes.org.uk
http://www.guccibelt.us.com
http://www.longchamphandbags.us.org
http://www.kobebasketballshoes.us.com
http://www.adidasyeezy.co.uk
http://www.goyardhandbags.us.com
http://www.fitflops.cc
http://www.kyrie4.org
http://www.nike-airforce1.us.com
http://www.adidas-tubular.us.com
http://www.yeezyboost.com.co
http://www.curry4.us.com
http://www.longchampbags.us.org
http://www.hermesbelts.com
http://www.adidasultra.us.com
http://www.lebronjames-shoes.us.com
http://www.yeezy.org.uk
http://www.jordan12.us.com
http://www.hermes-belt.us.com
http://www.adidas-tubular.us.com
http://www.linksoflondon.us.com
http://www.retro-jordans.us.com
http://www.lebron15.net

# re: VB.NET で C# の { } 空ブロックと同じことをするには? 2018/01/04 13:58 chenlina

http://www.michaelkorsinc.us.com
http://www.adidaswings.name
http://www.outletcanadagoosesale.us.com
http://www.louboutin.uk
http://www.timberland.us.org
http://www.ferragamooutlet.us.com
http://www.nikeairmax.me.uk
http://www.swarovski-jewelry.us
http://www.ralphlaurencom.us.com
http://www.pradabags.in.net
http://www.christian--louboutin.us
http://www.cheapreplicawatches.us.com
http://www.rayban.in.net
http://www.thenorthfaceoutlet.ca
http://www.oakleysunglassescom.us.com
http://www.uggbootssaleoutlet.us.com
http://www.michaelkorsoutlet.us
http://www.pandoracharmjewelry.us.com
http://www.montblanc.com.co
http://www.thenorthfaceuk.co.uk
http://www.truereligionsale.com.co
http://www.doudounecanadagooseenfant.fr
http://www.michaelkorsoutlet70off.us.com
http://www.ugg.com.co
http://www.michaelkorsonline-outlet.us.com
http://www.raybansunglassesoutlet.net.co
http://www.timberlandoutlet.us.org
http://www.converseshoesoutlet.us.com
http://www.ralphlauren-poloshirts.co.uk
http://www.uggcanadaoutlet.ca
http://www.toryburchoutletoff.us.com
http://www.uggoutletinc.us.com
http://www.truereligionoutletjeans.us
http://www.ralphlaurenoutletofficial.us.com
http://www.truereligion-jeans.us
http://www.wholesaleoakleysunglasses.us.org
http://www.fitflops.org
http://www.soccerjersey.us.com
http://www.pandorajewelrycanada.ca
http://www.coachhandbagsfactoryoutletonline.us.com
http://www.outletcanadagoose.ca
http://www.vibram-fivefingers.us.com
http://www.ralphlauren.in.net
http://www.ugg-bootsonline.us.com
http://www.canadagoosecom.us.com
chenlina20180104

# re: INI 編集ツール IniModifier を作成してみる (1) 2018/07/31 14:32 chenyingying

http://www.undefeated.us.com
http://www.fitflopss.us.com
http://www.soldier11.com
http://www.pasottiombrelli.us
http://www.adidasyeezy350.us.com
http://www.coachoutletfactoryofficial.us.com
http://www.longchampoutlet-store.us.com
http://www.outletcanadagoosesale.us.com
http://www.coachfactoryoutlet-online.eu.com
chenyingying20180731メ

# Jordan 12 Gym Red 2019/04/05 5:57 utuscxzihuv@hotmaill.com

ahhfwqbmz,Hi there, just wanted to say, I liked this article. It was helpful. Keep on posting!

# Nike Element 87 2019/04/12 18:32 fixuafqrl@hotmaill.com

xkyqjrqb,Thanks for sharing this recipe with us!!

# Yeezys 2019/04/13 8:09 mppatrddgjg@hotmaill.com

tvkdkwsn Adidas Yeezy,A very good informative article. I've bookmarked your website and will be checking back in future!

# wtLqxmgNMKqLW 2019/04/22 21:03 https://www.suba.me/

OSSWeZ There as certainly a great deal to know about this issue. I love all of the points you made.

# Yeezy 2019/04/24 4:40 cwgibe@hotmaill.com

This is not a crazy idea in my opinion. We may enter the end of the ten-year bull market, we The volatility seen in the past six months is very different from the past 10 years.” Earlier this week,

# pwwJjWxAqzw 2019/04/26 20:41 http://www.frombusttobank.com/

This is one awesome article. Keep writing.

# niupemjaAyhZbGO 2019/04/27 4:52 http://avaliacao.se.df.gov.br/online/user/profile.

Looking forward to reading more. Great blog post.Much thanks again. Awesome.

# Nike Zoom 2019/04/27 15:55 gqonhb@hotmaill.com

Dalio pointed out that the gap between rich and poor has reached the highest level since the end of the 1930s, and now the wealthiest 1% of the population has more than the wealth of the bottom 90% of the population. So who is responsible for this dilemma? Dalio thinks that it should not be "evil rich" or "lazy poor", but should be the capitalist system itself. Dalio pointed out.

# XVgvOvckOyTtLSB 2019/04/27 21:27 https://www.caringbridge.org/visit/targetloaf88/jo

While I was surfing yesterday I saw a excellent post concerning

# qvAOTtHbozYDmwW 2019/04/28 2:28 http://tinyurl.com/yy8h9fla

Major thankies for the blog article. Keep writing.

# sxPJcgtKxNuoojRZHA 2019/04/28 3:55 http://bit.ly/2v2lhPy

Quickly and easily build your web traffic and PR, which provides Web site visitors to add your page to any social bookmarking website.

# aVvOuqkkrOTPUaLPJ 2019/04/29 19:38 http://www.dumpstermarket.com

I use pocket money also. I love it. I also use MPG and it allows me to record my gas purchases and maintenance transactions into pocket money right from MPG.

# unnMtTHhVxjlPh 2019/04/30 17:11 https://www.dumpstermarket.com

You actually make it appear really easy along with your presentation however I find this matter to be really something

# WvdfOnxIeEUoXt 2019/04/30 19:39 https://cyber-hub.net/

Perfectly written content, thanks for selective information.

# sKIKmTuUrMolOPeuUW 2019/05/01 20:35 http://highnovascotia.com/__media__/js/netsoltrade

Very good article. I will be dealing with a few of these issues as well..

# loOnwTNQQMgujBz 2019/05/02 16:30 https://ubytovani-v-krkonosich.com/kreativa-as-a-m

Major thankies for the article post. Fantastic.

# ubpNLfcUOcijlmF 2019/05/02 20:26 https://www.ljwelding.com/hubfs/tank-fit-up-bed-sy

wonderful points altogether, you simply gained a new reader. What would you recommend in regards to your post that you made some days ago? Any positive?

# VMjBvEWbtt 2019/05/03 0:59 https://www.ljwelding.com/hubfs/welding-tripod-500

Spot on with this write-up, I truly suppose this website wants far more consideration. I all most likely be once more to read far more, thanks for that info.

# YsevkPURSYFDwgHP 2019/05/03 13:03 https://mveit.com/escorts/united-states/san-diego-

This web site definitely has all of the information and facts I wanted about this subject and didn at know who to ask.

# Nike Shoes 2019/05/03 14:10 woolcnixc@hotmaill.com

The Clippers didn't so much as look for something in Game 5 as come and take it.

# poOREFExYEkuMbabv 2019/05/03 21:59 https://mveit.com/escorts/united-states/los-angele

Thanks a lot for the blog article.Really looking forward to read more. Much obliged.

# kKmfXaxNOXpRyZ 2019/05/03 22:16 http://deltons.com/__media__/js/netsoltrademark.ph

You are my role models. Many thanks for the post

# BFhqbCtgoD 2019/05/04 1:27 http://dist283.org/__media__/js/netsoltrademark.ph

There as definately a lot to learn about this topic. I really like all the points you made.

# YTjUOEpQiBJrth 2019/05/04 17:18 https://wholesomealive.com/2019/04/28/unexpected-w

wonderful points altogether, you just gained a new reader. What might you recommend in regards to your submit that you just made some days ago? Any certain?

# Nike Store 2019/05/05 12:59 rrcllbzs@hotmaill.com

55-year-old actor Nicolas Cage is currently going through a rough time. After filing for an annulment his wife of just four days, the National Treasure star and actual national treasure has had to find ways to blow off some steam.

# UkDkttpTKXF 2019/05/05 19:13 https://docs.google.com/spreadsheets/d/1CG9mAylu6s

There is certainly a great deal to know about this subject. I love all of the points you have made.

# PrhuBOtwbkD 2019/05/07 18:16 https://www.mtcheat.com/

You can certainly see your expertise within the work you write. The world hopes for even more passionate writers such as you who are not afraid to say how they believe. At all times follow your heart.

# lTgtjQpnYNLFLiVVyFM 2019/05/07 18:16 https://www.mtcheat.com/

Some really choice articles on this website , saved to bookmarks.

# npPZzxXPaXajFrs 2019/05/08 21:17 http://www.authorstream.com/calposgata/

Major thankies for the blog post.Really looking forward to read more. Really Great.

# FgASWEbWusqGEHB 2019/05/08 23:58 https://www.edocr.com/v/ear3mb4g/CassiusWilson/Sto

I visited a lot of website but I believe this one holds something special in it in it

# eJeDlttIpQ 2019/05/09 3:15 https://setiweb.ssl.berkeley.edu/beta/team_display

Than?s for the post. ? all cаА а?а?аА аБТ?tainly аАа?аАТ?omeback.

# zVJfHQtLxOxGgy 2019/05/09 4:15 https://thomasjharton.wistia.com/medias/8ckn7y8ddv

It is best to participate in a contest for among the finest blogs on the web. I all recommend this web site!

# aYFmaHUbjs 2019/05/09 7:34 https://www.videosprout.com/video?id=70df5708-3088

liked every little bit of it and i also have you book marked to see new information on your web site.

# rafDqCddvqEbiDy 2019/05/09 12:49 http://www.screencast.com/t/lwtPGXHyVcBT

It is actually a great and helpful piece of information. I am glad that you simply shared this helpful info with us. Please keep us up to date like this. Thanks for sharing.

# WiAfNFlqxkuubmolGYS 2019/05/09 17:09 https://www.mjtoto.com/

Really informative blog post.Really looking forward to read more. Fantastic.

# zVxQYrOOpRXJ 2019/05/09 21:13 https://www.sftoto.com/

Major thanks for the blog article.Much thanks again. Much obliged.

# fSWcVXjhIeap 2019/05/10 2:37 http://www.sopcich.com/UserProfile/tabid/42/UserID

I was suggested this website by my cousin. I am not sure whether this post is written by him as no one else know such detailed about my difficulty. You are incredible! Thanks!

# MdRDkNEkihANDKCm 2019/05/10 2:47 https://www.mtcheat.com/

This is one awesome blog.Much thanks again. Want more.

# ocZJUchLpDqNj 2019/05/10 7:12 https://bgx77.com/

Perfect piece of function you have done, this internet site is actually cool with excellent details.

# kCEZZCPeYLpDZiaaYXm 2019/05/10 9:29 https://www.dajaba88.com/

There is definately a lot to find out about this subject. I love all the points you ave made.

# XXjhHRNuleeDAGntvrT 2019/05/10 11:55 https://telegra.ph/How-you-can-Make-Your-Instagram

on quite a few of your posts. Several of them are rife with

# RvtFXdVHeYbSsBwG 2019/05/10 14:16 https://rubenrojkesconstructor.doodlekit.com/

Many thanks for sharing this fine piece. Very inspiring! (as always, btw)

# fEKjaXRJmgQjczbLNM 2019/05/11 5:14 https://www.mtpolice88.com/

Where I come from we don at get much of this sort of writing. Got to look around all over the internet for such relevant pieces. I congratulate your effort. Keep it up!

# KZcOmBGputgLPnE 2019/05/13 0:26 https://www.mjtoto.com/

You made some really good points there. I looked on the net for more info about the issue and found most individuals will go along with your views on this website.

# XbQaLCAvXJrdgCXg 2019/05/13 1:19 https://reelgame.net/

I think, that you are not right. I can defend the position. Write to me in PM.

# ystWXKhRgbd 2019/05/14 2:01 http://Pointracs.com/section.cfm?wSectionID=%5C%22

Major thanks for the blog article.Really looking forward to read more. Really Great.

# mPMMgwVJgw 2019/05/14 3:46 https://kiahpitts.wordpress.com/

Thanks a bunch for sharing this with all of us you actually know what you are talking about! Bookmarked. Kindly also visit my web site =). We could have a link exchange arrangement between us!

# nPMTHNuaPj 2019/05/14 3:51 https://bagfly6.webs.com/apps/blog/show/46712759-p

it is part of it. With a boy, you will have

# zubQNYkkjjNqaQf 2019/05/14 4:55 http://www.jobref.de/node/2088639

Thanks for sharing, this is a fantastic article post. Awesome.

# QtoMvwfQWUOpvxwa 2019/05/14 12:28 http://www.mefeedia.com/watch/70884949

You made some decent points there. I looked on the internet for the subject matter and found most people will approve with your website.

# ZtEQpYPzIurA 2019/05/14 23:05 http://dmitriyefjnx.recentblog.net/we-offer-fun-pa

pretty helpful stuff, overall I imagine this is worthy of a bookmark, thanks

# jpBYpafTYG 2019/05/15 2:43 http://cccamserveruwz.journalnewsnet.com/attach-st

This particular blog is definitely entertaining and diverting. I have found a bunch of useful advices out of this amazing blog. I ad love to go back over and over again. Thanks a lot!

# RnkaoUBsCxznKYDfVPo 2019/05/15 10:12 http://www.21kbin.com/home.php?mod=space&uid=9

Thorn of Girl Great info might be uncovered on this website blogging site.

# xiCwpVhtTmRp 2019/05/15 14:51 https://www.talktopaul.com/west-hollywood-real-est

It'а?s actually a great and helpful piece of info. I'а?m glad that you shared this helpful info with us. Please keep us up to date like this. Thanks for sharing.

# GhkrfGGBoBcEaEKqZS 2019/05/15 17:02 https://www.minds.com/blog/view/975077264436703232

this is now one awesome article. Really pumped up about read more. undoubtedly read onaаАа?б?Т€Т?а?а?аАТ?а?а?

# yUOuCCskxHbxSCbGd 2019/05/16 21:53 https://reelgame.net/

There is evidently a bundle to realize about this. I consider you made various good points in features also.

# MJXGKqQMnHehyJducS 2019/05/16 23:00 https://www.mjtoto.com/

Wow! This could be one particular of the most useful blogs We have ever arrive across on this subject. Actually Excellent. I am also an expert in this topic so I can understand your hard work.

# iotHcMGIFusABm 2019/05/17 1:51 https://angel.co/shawn-rose-3

The Silent Shard This may probably be fairly handy for a few of your respective job opportunities I decide to never only with my website but

# tXRmtIZTvuF 2019/05/17 2:00 http://freedomsroad.org/community/members/prunerch

It as just permitting shoppers are aware that we are nonetheless open for company.

# SIBRNmxJSBfgpjkUH 2019/05/17 2:43 https://www.sftoto.com/

This very blog is obviously cool as well as diverting. I have discovered helluva helpful things out of it. I ad love to return every once in a while. Thanks a bunch!

# VDLAvhtbrfdaD 2019/05/17 20:46 http://all4webs.com/healthcork1/bqllhytlkl299.htm

this blog loading? I am trying to determine if its a problem on my

# WoYhKvCFWWxxCYm 2019/05/17 22:09 http://nifnif.info/user/Batroamimiz909/

I think other web-site proprietors should take this site as an model, very clean and excellent user friendly style and design, let alone the content. You are an expert in this topic!

# sQDXAMeZIZkHO 2019/05/18 2:08 https://tinyseotool.com/

Thanks for sharing, this is a fantastic article.Really looking forward to read more. Keep writing.

# LxyUWShXBza 2019/05/18 5:52 https://www.mtcheat.com/

Rattling good information can be found on weblog.

# EoNzPKJGYfZTXrB 2019/05/18 6:59 https://totocenter77.com/

I went over this website and I conceive you have a lot of fantastic information, saved to my bookmarks (:.

# MRFUlWPdYxpndy 2019/05/18 9:59 https://bgx77.com/

What as up to all, how is everything, I think every one is getting more from this website, and your views are good in support of new visitors.

# UdMWQpLabdGVcrKJWRs 2019/05/18 10:50 https://www.dajaba88.com/

Thanks so much for the article.Really looking forward to read more. Want more.

# NFL Jerseys 2019/05/18 20:06 gmrcct@hotmaill.com

http://www.redjordan12.us/ Jordan 12 Gym Red

# aFIEnjMPhjDIg 2019/05/21 3:51 http://www.exclusivemuzic.com/

You are my inspiration , I have few blogs and often run out from to brand.

# FYPRNcHpGqdTnO 2019/05/21 22:14 https://nameaire.com

The Silent Shard This can most likely be very practical for a few of the positions I decide to do not only with my website but

# LMiycXTnxjlT 2019/05/22 15:32 https://fenderway8.kinja.com/

You made some first rate factors there. I seemed on the internet for the difficulty and located most individuals will associate with together with your website.

# fQkODtixRdQJXAxAMJ 2019/05/22 15:38 https://famedspace.com/blog/view/82912/utilizing-e

some truly excellent posts on this web site , thankyou for contribution.

# NFL Jerseys Wholesale 2019/05/22 21:09 cxrisux@hotmaill.com

http://www.pandorarings-jewelry.us/ Pandora Ring

# UGGKTRVJudhZnPTC 2019/05/22 22:22 https://bgx77.com/

we should highly recommand it for keeping track of our expenses and we will really satisfied with it.

# usONKXrpLCP 2019/05/24 19:42 http://bgtopsport.com/user/arerapexign586/

marc jacobs outlet ??????30????????????????5??????????????? | ????????

# DKiBUMTdsheTXNYuA 2019/05/25 1:08 http://elvuelomedia.com/__media__/js/netsoltradema

Only a few blogger would discuss this topic the way you do.,:

# OJqkOeoaam 2019/05/25 3:22 http://deannalinden.com/__media__/js/netsoltradema

Therefore that as why this post is great. Thanks!

# sdOYUOgHrccMbySjbp 2019/05/25 9:59 https://lynchrhodes8151.de.tl/This-is-my-blog/inde

I think this is a real great blog article. Really Great.

# kfAAAPZGntGYq 2019/05/25 10:47 https://www.slideshare.net/subctigaseg

Wow, great post.Much thanks again. Much obliged.

# IsNCBIkJmGIjC 2019/05/27 18:59 https://bgx77.com/

Really informative blog article.Thanks Again. Want more.

# dYXROyspPFUQ 2019/05/27 22:16 http://nifnif.info/user/Batroamimiz598/

Very good info. Lucky me I found your website by chance (stumbleupon). I ave saved as a favorite for later!

# cueJyqIKXLDQlx 2019/05/27 23:12 https://www.mtcheat.com/

Im thankful for the blog article. Want more.

# YDynRHeNiM 2019/05/28 3:06 https://ygx77.com/

pretty handy material, overall I believe this is worthy of a bookmark, thanks

# ctgkCpNoxMVcffH 2019/05/28 6:12 https://www.reddit.com/r/oneworldherald/

We could have a hyperlink alternate contract among us

# MXVxLwVjvEDmpO 2019/05/28 22:15 http://arwebdesingles.today/story.php?id=23528

This web site definitely has all of the information and facts I wanted concerning this subject and didn at know who to ask.

# OqTzwbBmWVv 2019/05/29 17:03 https://lastv24.com/

Im thankful for the blog post.Thanks Again. Keep writing.

# abhDJJsvwvclWo 2019/05/29 17:37 http://inokllc.com/__media__/js/netsoltrademark.ph

I think this is a real great article.Thanks Again. Great. this site

# nTnqiBINbsqEZxYdbMX 2019/05/29 21:50 https://www.ttosite.com/

Ultimately, a problem that I am passionate about. I have looked for details of this caliber for the previous various hrs. Your internet site is tremendously appreciated.

# GHdMLDPUFKFRA 2019/05/30 1:50 http://totocenter77.com/

Thanks so much for the blog post.Really looking forward to read more. Awesome.

# brLBaARUmHtAIpwY 2019/05/30 11:06 https://www.intensedebate.com/people/BOHerald

Im obliged for the blog post.Thanks Again. Awesome.

# ZIgYvYisIIfETnSyQT 2019/05/31 16:32 https://www.mjtoto.com/

It as hard to locate knowledgeable individuals within this topic, having said that you be understood as guess what takes place you are discussing! Thanks

# BDDAKDEAkUMpXHfouJ 2019/05/31 16:32 https://www.mjtoto.com/

It as hard to come by knowledgeable people on this topic, however, you seem like you know what you are talking about! Thanks

# qMNwmJMAQYddXwyE 2019/05/31 21:59 https://maxscholarship.com/members/visefridge49/ac

This will be priced at perusing, I like the idea a lot. I am about to take care of your unique satisfied.

# Cheap Jerseys 2019/06/02 23:23 wdoizyktis@hotmaill.com

http://www.jordan11concord.us.com/ jordan 11 concord

# Travis Scott Air Jordan 1 2019/06/03 3:08 ubxjwgf@hotmaill.com

Raja's elder brother,Jordan who continues to work as a police officer,Jordan apologized to the Jones family and complained that Raja had been unfairly treated for what he called "a bad decision."

# Yeezy 350 2019/06/03 4:41 phmimjndwd@hotmaill.com

http://www.pandora-jewelryoutlet.us/ pandora rings

# apmWXcuCALG 2019/06/03 19:06 https://www.ttosite.com/

Outstanding post, I believe people should larn a lot from this weblog its very user friendly.

# jZOgPzjqezAyWaZYf 2019/06/03 20:04 https://totocenter77.com/

Valuable information. Lucky me I discovered your web site by chance, and I am stunned why this coincidence did not came about earlier! I bookmarked it.

# LMvdyASAvlPoMIp 2019/06/03 23:56 http://archivesalberta.com/__media__/js/netsoltrad

Very good blog.Much thanks again. Much obliged.

# bzNcJcHIxf 2019/06/04 2:49 http://beechershandmadecheese.net/__media__/js/net

You ave made some good points there. I looked on the web to learn more about the issue and found most individuals will go along with your views on this site.

# GlTnsaYksBa 2019/06/04 13:45 https://telegra.ph/Printing-Products-Types-of-Ink-

You made some decent points there. I did a search on the issue and found most people will consent with your website.

# cLPdmXuTgAAVfgE 2019/06/05 16:52 http://maharajkijaiho.net

Valuable info. Lucky me I found your web site by accident, and I am shocked why this accident did not happened earlier! I bookmarked it.

# isInsPdDJh 2019/06/05 16:52 http://maharajkijaiho.net

Wonderful story Here are a couple of unrelated information, nonetheless actually really worth taking a your time to visit this website

# zQVJqMfJgdOS 2019/06/05 21:10 https://www.mjtoto.com/

That as truly a pleasant movie described in this paragraph regarding how to write a piece of writing, so i got clear idea from here.

# JAKJocZBUWW 2019/06/06 23:24 http://metaeaspets.world/story.php?id=9108

I'а?ve recently started a web site, the information you provide on this website has helped me tremendously. Thanks for all of your time & work.

# zskeuHVCnyza 2019/06/07 18:22 https://ygx77.com/

This is my first time pay a quick visit at here and i am genuinely pleassant to read all at one place.

# DBeOzJsfNjFEiLKB 2019/06/07 21:49 https://youtu.be/RMEnQKBG07A

Utterly written subject matter, thanks for selective information.

# TYxfWvnSXfjFbOFSF 2019/06/08 0:43 https://www.ttosite.com/

You ave made some good points there. I checked on the net to find out more about the issue and found most people will go along with your views on this website.

# jdNzYbfsFf 2019/06/08 4:55 https://www.mtpolice.com/

Perfectly, i need Advantageously, the send

# SCQgWJGmfjhM 2019/06/11 21:43 http://nibiruworld.net/user/qualfolyporry337/

Paragraph writing is also a fun, if you be acquainted with afterward you can write or else it is complicated to write.

# Adidas Yeezy 2019/06/12 8:12 jrupzmbmcsp@hotmaill.com

http://www.pittsburghsteelers-jerseys.us/ Pittsburgh Steelers Jerseys

# pandora outlet 2019/06/13 1:17 klkesqhkev@hotmaill.com

http://www.yeezys.us.com/ Yeezys

# VtePXinqryGPFAGIEcm 2019/06/13 2:32 http://motofon.net/story/199473/

That is a very good tip particularly to those new to the blogosphere. Simple but very accurate info Many thanks for sharing this one. A must read post!

# rwiXGrCyyuSP 2019/06/17 18:06 https://www.buylegalmeds.com/

There is noticeably a bundle to find out about this. I assume you made certain good factors in options also.

# lVPNKfJXNYCWVxAvAx 2019/06/17 22:28 http://b3.zcubes.com/v.aspx?mid=1094198

I truly appreciate this article post.Really looking forward to read more. Fantastic.

# PaMcpZQnZLTPamAFM 2019/06/18 0:09 http://black-decker.microwavespro.com/

Its hard to find good help I am regularly saying that its difficult to get good help, but here is

# xQHUDyGyOQTlRFVE 2019/06/18 3:44 http://timeuncle31.aircus.com/find-the-wolf-home-a

Thanks for sharing, this is a fantastic article post. Great.

# iAEbvGotlFgoLKkPTsj 2019/06/19 5:04 https://xceptionaled.com/members/perchlaw4/activit

pretty practical material, overall I imagine this is well worth a bookmark, thanks

# zkYFDRdomNoTSZP 2019/06/19 6:51 http://studio1london.ca/members/breadgrouse9/activ

This particular blog is without a doubt awesome and besides informative. I have chosen a bunch of useful stuff out of this blog. I ad love to come back again and again. Cheers!

# iYIMYErsHDSdqcmsTp 2019/06/19 21:48 https://www.openlearning.com/u/crackduck38/blog/Pe

It as difficult to find well-informed people for this topic, but you sound like you know what you are talking about! Thanks

# Cheap Yeezy Boost 2019/06/20 10:12 tynywpqx@hotmaill.com

http://www.nfljerseyscheapwholesale.us/ NFL Jerseys Wholesale

# OriQUZkxDwnrXUUaUFo 2019/06/22 0:17 https://guerrillainsights.com/

Thanks again for the blog post.Much thanks again. Much obliged.

# zjpomtoAfyeQhmVEBED 2019/06/24 1:30 https://www.philadelphia.edu.jo/external/resources

You made some decent points there. I checked on the internet for more information about the issue and found most individuals will go along with your views on this website.

# RyWOGCgkIKM 2019/06/24 3:46 http://beautytipsforyouaan.journalnewsnet.com/the-

When I saw this page was like wow. Thanks for putting your effort in publishing this article.

# OcBAMUQIFzntlRagwb 2019/06/24 6:03 http://eric1816iu.icanet.org/the-philosophy-underp

When are you going to post again? You really entertain me!

# BlKghVDfvv 2019/06/25 4:38 https://www.healthy-bodies.org/finding-the-perfect

It as hard to find experienced people on this subject, but you seem like you know what you are talking about! Thanks

# IdOeUKaIXsvnqtANRaE 2019/06/25 21:56 https://topbestbrand.com/&#3626;&#3621;&am

Your style is really unique compared to other folks I ave read stuff from. Many thanks for posting when you have the opportunity, Guess I will just bookmark this page.

# FIWkaotOYhiabqisfE 2019/06/26 2:56 https://topbestbrand.com/&#3610;&#3619;&am

Im thankful for the article.Thanks Again. Really Great.

# YPUBeCgaQlqYat 2019/06/26 5:26 https://www.cbd-five.com/

Thanks again for the article post.Much thanks again. Much obliged.

# XtXCEjeXteWsG 2019/06/26 17:00 http://bgtopsport.com/user/arerapexign116/

Respect to website author , some good entropy.

# bXAsvkYzwoDaYEERTOq 2019/06/26 21:01 https://www.ted.com/profiles/13603527

There is clearly a lot to know about this. I assume you made various good points in features also.

# WKfcpFEIrB 2019/06/26 21:08 http://www.socialcityent.com/members/burnheron82/a

Well I truly enjoyed studying it. This post offered by you is very helpful for proper planning.

# BMavhsFOTOryewNnuJY 2019/06/28 18:19 https://www.jaffainc.com/Whatsnext.htm

Writing like yours inspires me to gain more knowledge on this subject. I appreciate how well you have stated your views within this informational venue.

# wgDyJuPtDcGUpSEQ 2019/06/28 21:20 http://eukallos.edu.ba/

Im obliged for the post.Really looking forward to read more. Want more.

# ibkxBNNgGae 2019/06/28 23:49 http://quicksprout.pro/story.php?id=8124

This blog has lots of very useful stuff on it. Thanks for sharing it with me!

# aPmVrqUhOjq 2019/06/29 6:31 http://xn--b1adccaenc8bealnk.com/users/lyncEnlix60

In truth, your creative writing abilities has inspired me to get my very own site now

# vKACYhGaytaWJ 2019/06/29 9:21 https://emergencyrestorationteam.com/

Tumblr article I saw someone writing about this on Tumblr and it linked to

# air jordan 33 2019/07/04 20:30 bfzgrsotyig@hotmaill.com

http://www.jordan11-concord.com/ Jordan 11 Concord 2018

# Yeezy 700 2019/07/15 0:23 rpgksldeyyd@hotmaill.com

http://www.nfl-jerseys.us.org/ Cheap NFL Jerseys

# Yeezy Shoes 2019/07/16 8:01 roblcw@hotmaill.com

http://www.yeezyboost350v2.de/ Yeezy Boost 350 V2

タイトル  
名前  
Url
コメント