Adakah yang punya daftar lengkap metode dan metode ekstensi LINQPad, seperti
.Dump()
SubmitChanges()
c#
.net
entity-framework
linq-to-sql
linqpad
Bent Rasmussen
sumber
sumber
Jawaban:
LINQPad mendefinisikan dua metode ekstensi (dalam LINQPad.Extensions), yaitu
Dump()
danDisassemble()
.Dump()
menulis ke jendela output menggunakan formatter output LINQPad dan kelebihan beban untuk membiarkan Anda menentukan judul:Anda juga dapat menentukan kedalaman rekursi maksimum untuk menimpa default 5 level:
Disassemble () membongkar metode apa pun untuk
IL
, mengembalikan output dalam sebuah string:Selain kedua metode ekstensi tersebut, ada beberapa metode statis yang berguna di LINQPad.Util. Ini didokumentasikan dalam pelengkapan otomatis, dan termasuk:
LINQPad juga menyediakan kelas HyperLinq. Ini memiliki dua tujuan: yang pertama adalah untuk menampilkan hyperlink biasa:
Anda dapat menggabungkan ini dengan
Util.HorizontalRun
:Hasil:
Tujuan kedua HyperLinq adalah untuk secara dinamis membangun kueri:
Anda juga dapat menulis metode ekstensi Anda sendiri di LINQPad. Buka 'Kueri Saya' dan klik kueri yang disebut 'Ekstensi Saya'. Jenis / metode apa pun yang didefinisikan di sini dapat diakses oleh semua pertanyaan:
Dalam 4,46 (0,02) kelas dan metode baru telah diperkenalkan :
Selain itu, kelas Hyperlinq sekarang mendukung delegasi Tindakan yang akan dipanggil ketika Anda mengklik tautan, yang memungkinkan Anda untuk bereaksi dalam kode dan bukan hanya tautan ke halaman web eksternal.
DumpContainer
adalah kelas yang menambahkan blok ke jendela output yang isinya dapat diganti.CATATAN! Ingatlah untuk
.Dump()
yangDumpContainer
sendiri di tempat yang tepat.Menggunakan:
OnDemand
adalah metode ekstensi yang tidak akan menampilkan konten parameternya ke jendela output, melainkan menambahkan tautan yang dapat diklik, yang bila diklik akan mengganti tautan dengan.Dump()
konten ed parameter. Ini bagus untuk struktur data yang kadang dibutuhkan yang mahal atau menghabiskan banyak ruang.CATATAN! Ingatlah untuk
.Dump()
hasil panggilanOnDemand
di tempat yang tepat.Untuk menggunakannya:
Util.ProgressBar
adalah kelas yang dapat menampilkan progressbar grafis di dalam jendela output, yang dapat diubah saat kode bergerak.CATATAN! Ingatlah untuk
.Dump()
objek Util.ProgressBar di tempat yang tepat.Untuk menggunakannya:
sumber
Selain terkenal
myQuery.Dump("Query result:")
, fitur lain untuk disebutkan adalahUtil
kelas: Ini berisi banyak metode yang sangat berguna (beberapa dari mereka saya sebutkan, tetapi ada banyak lagi).Yang juga menarik adalah Anda bisa memodifikasi cara
Dump()
kerjanya .Akhirnya saya akan menunjukkan kepada Anda bagaimana Anda dapat membuat perubahan permanen (yaitu menyisipkan, memperbarui, menghapus kueri LINQ) menggunakan
SubmitChanges()
atauSaveChanges()
juga bagaimana Anda dapat mengakses objek koneksi internal LinqPad.Dan untuk mengatasinya, saya akan menunjukkan kepada Anda bagaimana Anda dapat membuat grafik 2d sederhana di dalam LinqPad (menggambar garis, bitmap atau fungsi ).
Jadi, inilah koleksi fitur LinqPad bawaan (dari pengalaman saya sendiri dengan alat ini):
.Membuang()
(parameter tersedia di LinqPad v5.03.08 dan di atas)
Semua pengguna LinqPad tahu dan menyukai
.Dump()
metode ekstensi, yang mengkonsumsi dan mencetak (hampir) semuanya.Tapi tahukah Anda ada beberapa parameter yang tersedia? Lihatlah potongan kode ini:
Contoh 1 hanya mencetak variabel
a
danc
menyembunyikanb
dand
, contoh 2 melakukan sebaliknya (perhatikan bahwa hanya menetapkan 2 parameter yang tersedia). Variabely
danz
tidak dapat disembunyikan secara individual, karena mereka tidak berada di tingkat atas.Parameter berikut tersedia ( semua adalah opsional ):
description
[string] - memberikan deskripsi untuk objek yang akan dibuangdepth
[int?] - membatasi seberapa dalam objek diperiksa secara rekursiftoDataGrid
[bool] - jika benar, output diformat sebagai datagrid daripada sebagai RichTextexclude
[string] - jika Anda memberikan daftar variabel yang dipisahkan koma, mereka akan dikeluarkan dari output (dalam contoh "a, c":b
dand
ditampilkan,a
danc
disembunyikan)exclude
[string] dengan awalan "+" - awalan membalikkan logika dari parameter kecualikan. Ini berarti, jika Anda memberikan daftar variabel yang dipisahkan koma, semua kecuali yang ditentukan disembunyikan (dalam contoh "+ b, d":b
dand
ditampilkan, semua lainnya disembunyikan)var x=Util.ToExpando(obj, "a, c", "b, d"); x.Dump();
String pertama berisi daftar properti yang akan disertakan, string kedua daftar untuk dikecualikan
.OnDemand("click me").Dump();
alih-alih.Dump()
, itu akan menampilkan tautan yang bisa Anda klik untuk memperluas. Berguna jika Anda ingin memeriksa nilai-nilai, misalnyaUtil.OnDemand("Customer-ID: " + customerObject.ID.ToString(), ()=>customerObject, false).Dump();
untuk selalu menunjukkan ID per default tetapi mengungkapkan rinciancustomerObject
hanya jika Anda tertarik.Topik lebih lanjut tentang Dump dapat ditemukan di sana - sini .
Lingkungan Hidup
Ini bukan ekstensi LinqPad, melainkan kelas .NET, tetapi karena ini berguna, saya akan tetap menyebutkannya. Anda bisa mendapatkan banyak informasi berguna yang dapat Anda gunakan dalam skrip Anda seperti:
NB Untuk mendapatkan
Domain\UserName
saya akan menggunakanSystem.Security.Principal.WindowsIdentity.GetCurrent().Name
daripada
Environment.UserDomainName+@"\"+Environment.UserName
.Util.WriteCsv
( baru: tersedia sejak LinqPad versi v4.45.05 (beta) )
Ini akan menulis konten tabel
Customers
ke file CSVc:\temp\customers.csv
. Anda juga dapat menemukan contoh yang bagus bagaimana menggunakanUtil.WriteCsv
dan kemudian menampilkan data CSV di jendela hasil Linqpad di sini .Petunjuk:
Untuk mendapatkan / membuat file CSV yang ada di direktori yang sama dengan kueri, Anda dapat menggunakan:
var csvFile=Util.CurrentQueryPath.Replace(".linq", ".csv");
Jika tabelnya besar, gunakan
ObjectTrackingEnabled = false;
sebelum Anda menulis CSV untuk menghindari caching di memori.Jika Anda ingin menampilkan tabel dalam format XML daripada sebagai file yang dipisahkan koma, Anda dapat melakukannya seperti:
Contoh ini mengembalikan semua elemen yang memiliki atribut
attr1
yang berisi nilai"a"
dari file XML yang memiliki nama yang sama dengan kueri dan terkandung di jalur yang sama. Lihat tautan ini untuk contoh kode lebih banyak.Util.GetPassword
Ini akan mengambil kata sandi dari pengelola kata sandi bawaan LinqPad. Untuk membuat & mengubah password, membuka "manajer Password" item menu di menu "File" dari LINQPad. Jika tidak ada kata sandi yang disimpan ketika Anda menjalankan kode C #, dialog kata sandi akan terbuka meminta Anda untuk kata sandi dan Anda memiliki pilihan untuk membuat dan menyimpannya dengan cepat dengan mencentang kotak centang simpan kata sandi (dalam contoh, kata sandi untuk "UserXY" akan disimpan, dan nanti Anda dapat menemukan entri ini di pengelola Kata sandi ).
Keuntungannya adalah Anda dapat menyimpan kata sandi di dalam LinqScripts yang Anda buat dengan aman, secara terpisah dan dienkripsi dalam profil pengguna Windows (disimpan dalam
%localappdata%\LINQPad\Passwords
bentuk file). LinqPad menggunakan Windows DPAPI untuk melindungi kata sandi.Selain itu, kata sandi disimpan secara terpusat, jadi jika Anda perlu mengubahnya, Anda dapat melakukannya di menu dan langsung berlaku untuk semua skrip yang Anda buat.
Catatan:
Jika Anda tidak ingin menyimpan kata sandi dan hanya memunculkan dialog kata sandi, Anda dapat menggunakan parameter ke-2 sebagai berikut:
var pwd = Util.GetPassword("UserXY", true);
Ini akan menghapus centang pada kotak centang simpan kata sandi dalam dialog kata sandi (namun, pengguna masih dapat memeriksanya dan tetap memilih untuk menyimpan).
Jika Anda memerlukan kata sandi untuk disimpan dalam
SecureString
, Anda dapat menggunakan fungsi pembantu ini (nb: untuk.ToSecureString()
menggunakan metode ekstensi , harap ikuti tautan ini di Stackoverflow - ini juga memungkinkan Anda untuk mengubahnya kembali jika diperlukan):System.Security.SecureString GetPasswordSecure(string Name, bool noDefaultSave=true)
{
return Util.GetPassword(Name, noDefaultSave)
.ToSecureString();
}
Util.Cmd
Metode ini bekerja seperti pemroses perintah. Anda dapat memanggil semua perintah yang Anda tahu dari konsol Windows.
Contoh 1 - dir:
Ini akan menampilkan hasil direktori tanpa perlu
.Dump
. Menyimpannya dalam sebuah variabel memiliki keuntungan yang bisa Anda gunakan lebih lanjut dengan query Linq. Sebagai contoh:Ini akan membuang semua file dengan ekstensi file ".exe" atau ".dll" yang ada di
C:\windows\system32
. The/s
switch digunakan untuk recurse semua subdirektori dan/b
digunakan untuk format output telanjang. Perhatikan bahwa parameter kedua dari metode Cmd ditentukan untuk menekan output konsol agar hanya menampilkan hasil yang disaring menggunakan metode Dump.Anda dapat melihat bahwa ini lebih fleksibel daripada wildcard yang Anda miliki
dir
karena Anda dapat menggunakan fleksibilitas penuh dari mesin query Linq.Contoh 2 - editor teks:
Anda dapat membuka file di Notepad seperti ini:
Util. Gambar
Menampilkan gambar dari URL. Contoh:
Util.ProgressBar, Util.Progress
Menggunakan
Util.ProgressBar
memungkinkan Anda untuk menampilkan bilah kemajuan. Anda dapat menggunakan kelas pembantu berikut:Cukup gunakan sebagai contoh berikut menunjukkan:
Atau Anda dapat menggunakan
Util.Progress
untuk memperbarui bilah kemajuan terintegrasi LinqPads, misalnya:Perbedaannya adalah bahwa itu tidak akan ditampilkan di jendela hasil, dan Anda tidak dapat menetapkan pesan untuk itu.
Util.RawHtml
Menampilkan HTML di jendela output. Contoh:
Hyperlinq, Util.HorizontalRun
Anda dapat menggunakan fungsi contoh ini
untuk menampilkan hyperlink di jendela hasil - atau tindakan apa pun seperti membuka editor favorit Anda. Pemakaian:
Perhatikan bahwa fungsi ini selalu berfungsi, sementara
new Hyperlinq ("http://myURL", "Web site").Dump();
tidak berfungsi untuk beberapa jenis URL (terutama, jika Anda harus memasukkan nama port seperti ": 1234" sebagai bagian dari URL).Util.ReadLine
Membaca input dari konsol. Contoh:
Sebagai sinonim untuk
Util.ReadLine<string>()
, Anda dapat menggunakanConsole.ReadLine()
juga.Tapi masih ada lagi! Anda dapat membuat parser JSON sederhana dengan cuplikan berikut - cukup berguna, misalnya jika Anda ingin mengurai dan menguji string JSON dengan cepat. Simpan cuplikan berikut sebagai JSONAnalyzer.linq menggunakan editor teks dan kemudian buka di LinqPad (ini untuk menambahkan referensi dengan mudah dengan cepat):
Sekarang Anda dapat menjalankannya dan cukup menempelkan string JSON dari clipboard ke konsol - itu akan menggunakan
Dump
fungsi untuk menampilkannya sebagai objek dengan baik - dan Anda juga mendapatkan pesan kesalahan parser di layar untuk memperbaiki masalah. Sangat berguna untuk debugging AJAX.Util.ClearHasil
Jika Anda perlu menghapus jendela hasil di dalam skrip Anda, gunakan:
Baik menggunakannya di bagian atas skrip Anda, atau - jika Anda menjalankan beberapa kueri dalam skrip - Anda harus menunggu input pengguna sebelum mengosongkan layar (misalnya dengan mendahului dengan
Util.ReadLine
).Kustom .Dump () - ICustomMemberProvider
Yang juga menarik adalah, Anda dapat mengubah output
.Dump()
metode. Cukup implementasikan antarmukaICustomMemberProvider
, misJika Anda membuat turunan dari kelas ini, seperti
maka itu akan menampilkan hanya
Hint
,constMember1
,constMember2
, danmyprop
, tetapi tidak propertixyz
:Menampilkan MessageBox atau InputBox di LinqPad
Jika Anda perlu menampilkan kotak pesan, lihat di sini cara melakukannya.
Misalnya, Anda dapat menampilkan InputBox dengan menggunakan kode berikut
(jangan lupa untuk menekan F4 dan menambahkan Microsoft.VisualBasic.dll dan ruang namanya untuk membuat ini berfungsi)
Util.Jalankan
( baru: tersedia sejak LinqPad versi v4.52.1 (beta) )
Memungkinkan Anda menjalankan skrip LINQPad lain dari dalam skrip Anda atau dalam program .NET atau layanan Windows Anda sendiri (dengan merujuk versi LINQPad4-AnyCPU
LINQPad.exe
). Itu mengeksekusi skrip seperti halnya alat baris perintahlprun.exe
akan melakukannya.Contoh:
Contoh ini menjalankan skrip
foo.linq
, yang berisi kode sampel berikut:Ini memungkinkan Anda untuk memeriksa apakah skrip dijalankan dari dalam LinqPad GUI atau melalui
lprun.exe
atau denganUtil.Run
.Catatan: Variasi doa berikut mungkin bermanfaat:
SubmitChanges () - Linq To SQL
Jika Anda menggunakan LinqToSQL , Anda mungkin ingin membuat perubahan permanen (untuk operasi insert / update / delete ). Karena konteks basis data secara implisit dibuat oleh LinqPad, Anda perlu menelepon
SubmitChanges()
setelah setiap perubahan seperti yang ditunjukkan di bawah ini.Contoh untuk (LinqPad-) database Northwind :
Memasukkan
Memperbarui
Menghapus
Catatan: Untuk mendapatkan ID yang valid untuk contoh sebelumnya, Anda dapat menggunakan:
sebelum Anda memohon mereka.
SaveChanges () - Kerangka Entitas
Jika Anda menggunakan Entity Framework , Anda mungkin ingin membuat perubahan juga (untuk operasi insert / update / delete ). Karena konteks basis data secara implisit dibuat oleh LinqPad, Anda perlu menelepon
SaveChanges()
setelah setiap perubahan seperti yang ditunjukkan di bawah ini.Contoh-contoh pada dasarnya sama dengan sebelumnya untuk LinqToSQL , tetapi Anda harus menggunakan
SaveChanges()
sebagai gantinya, dan untuk memasukkan dan menghapus metode telah berubah juga.Memasukkan
Memperbarui
Menghapus
Catatan: Untuk mendapatkan ID yang valid untuk contoh sebelumnya, Anda dapat menggunakan:
sebelum Anda memohon mereka.
ini - konteks basis data
Di LinqPad , konteks database diterapkan secara otomatis dengan menggunakan kotak kombo di bagian atas dan memilih database yang tepat untuk permintaan Anda. Tapi kadang-kadang, berguna untuk referensi secara eksplisit, misalnya jika Anda menyalin beberapa kode dari proyek Anda dari Visual Studio , dan tempel ke LinqPad.
Cuplikan kode Anda yang diambil dari proyek Visual Studio sangat mungkin terlihat seperti ini:
Sekarang apa yang harus dilakukan
dc
? Tentu saja, Anda dapat menghapus setiap kemunculandc.
dalam kueri Anda, tetapi itu jauh lebih mudah. Cukup tambahkanke bagian atas cuplikan Anda seperti ini:
dan kode akan bekerja secara instan!
ini. Koneksi
Menggunakan LinqPad dengan OleDb, mengonversi objek data menjadi Linq, SQL kueri di Linq
Cuplikan kode berikut membantu Anda menggunakan LinqPad dengan OleDb. Tambahkan
System.Data.OleDb
dariSystem.Data
rakitan ke properti kueri, lalu rekatkan kode berikut keMain()
:Sekarang tambahkan koneksi SqlServer ke LinqPad dan tambahkan database Northwind untuk menjalankan contoh ini.
NB: Jika Anda hanya ingin mendapatkan database dan server dari koneksi yang dipilih saat ini, Anda dapat menggunakan potongan kode ini:
Anda bahkan dapat mengonversi
myDS
ke dalam Linq, jawaban untuk pertanyaan berikut menunjukkan bagaimana melakukannya: Contoh-contoh yang bagus dari menggunakan .NET 4 kata kunci dinamis dengan LinqSatu lagi contoh: Misalkan DBA Anda memberi Anda permintaan SQL dan Anda ingin menganalisis hasilnya di LinqPad - tentu saja dalam Linq, bukan dalam SQL. Maka Anda dapat melakukan hal berikut:
Dalam contoh ini, kueri SELECT DBA hanya "dilemparkan ke" teks perintah, dan hasilnya disaring dan dipesan oleh City.
Tentu saja, ini adalah contoh yang disederhanakan, DBA Anda mungkin akan memberi Anda skrip yang lebih kompleks, tetapi Anda mendapatkan ide: Cukup tambahkan kelas hasil pendukung yang berisi semua bidang dari klausa SELECT dan kemudian Anda dapat langsung menggunakannya .
Anda bahkan dapat mengambil hasilnya dari prosedur tersimpan dengan cara ini dan menggunakannya di Linq. Seperti yang Anda lihat, dalam contoh ini saya tidak peduli tentang tipe data dan gunakan
dynamic
untuk mengekspresikannya.Jadi ini benar-benar tentang pemrograman cepat untuk dapat menganalisis data dengan cepat. Anda seharusnya tidak melakukan ini dalam aplikasi Anda yang sebenarnya karena berbagai alasan (injeksi SQL, karena Anda dapat menggunakan EF sejak awal dll).
PanelManager
Gambar di LinqPad, bagian 1
Untuk menggunakan contoh di bawah, tekan F4dan menambahkan
System.Windows.dll
,System.Windows.Forms.dll
,WindowsFormsIntegration.dll
,PresentationCore.dll
danPresentationFramework.dll
program LINQPad Anda dan juga menambahkan namespaceSystem.Windows.Shapes
.Contoh pertama hanya menggambar garis:
Contoh ke - 2 menunjukkan bagaimana Anda dapat menampilkan grafik di LinqPad dengan menggunakan PanelManager. Biasanya LinqPad hanya mendukung objek Wpf. Contoh ini digunakan
System.Windows.Forms.Integration.WindowsFormsHost
untuk membuatWindows.Forms.PictureBox
tersedia (terinspirasi oleh ini ):Ini akan membuat gambar berikut (item panel "Grafik" dan "Gambar" ditambahkan oleh contoh di atas):
Jika Anda ingin menampilkan gambar dari database Northwind, Anda dapat melakukan hal berikut:
Ubah nama file gambar ke "NorthwindPics.jpg", lalu tambahkan kode berikut di awal metode Main () contoh ke - 2 :
Ini akan membaca catatan pertama dari tabel Karyawan dan menampilkan gambar.
Lihatlah tautan berikut untuk mencari tahu lebih lanjut:
Bentuk dan gambar dasar dalam visualisator kustom WPF
LinqPad
Catatan: Anda dapat mencapai hal yang sama tanpa PanelManager juga, seperti contoh berikut, yang saya lihat di sini menunjukkan:
Itu menggunakan
.Dump()
perintah untuk menampilkannya. Anda dapat memanggilimage.Dump()
beberapa kali dan itu akan menambahkan gambar.Formulir Windows
Gambar di LinqPad, bagian 2
Contoh berikut, terinspirasi oleh posting ini , menunjukkan bagaimana menerapkan plotter fungsi sederhana di Linqpad 5 menggunakan C # 7:
Itu menggunakan kemampuan LinqPad untuk menampilkan formulir Windows di panel hasil. Menambahkan referensi (tekan ) : , , dan menambahkan semua ruang nama dari majelis ini.
F4
System.Drawing.dll
System.Windows.Forms.dll
System.Windows.Forms.DataVisualization.dll
Petunjuk tambahan / bacaan lebih lanjut:
Ingin menggunakan LinqPad di Visual Studio ? Begini caranya .
Perlu memiliki LinqPad sebagai "Aplikasi portabel" ? Baca di sini cara melakukannya.
Situs web Joe untuk LinqPad selalu merupakan sumber yang bagus. Di dalam LinqPad,
Help -> What's New
memberi Anda petunjuk tentang fungsi dan metode baru. The LINQPad Forum juga berisi petunjuk bermanfaat.Juga sangat membantu: Artikel ini tentang debugging Linq (Pad).
Menggunakan
lprun.exe
untuk menjalankan kueri LINQ dalam skrip batch Anda . Baca artikel ini untuk lebih jelasnya. Misalnya:echo Customers.Take(100) > script.txt
lprun -lang=e -cxname=CompanyServer.CustomerDb script.txt
Dalam contoh ini, kueri adalah ekspresi LINQ sederhana. Tentu saja, Anda dapat menyiapkan kueri kompleks juga menggunakan
-lang=program
untuk mengaktifkan mode program.Anda dapat menulis metode ekstensi dan menyimpannya di tab Kueri Saya di sisi kiri LinqPad: Item terakhir dari pohon tersebut bernama My Extensions ; klik dua kali untuk membuka file tempat Anda dapat menulis ekstensi yang tersedia untuk semua kueri Anda. Masukkan saja ke dalam kelas statis publik
MyExtensions
, dan gunakanMain()
metode ini untuk memasukkan tes untuk ekstensi Anda.sumber
Dump adalah metode ekstensi global dan SubmitChanges berasal dari objek DataContext yang merupakan objek System.Data.Linq.DataContext.
LP hanya menambahkan Dump and Disassemble sejauh yang saya ketahui. Meskipun saya akan sangat menyarankan membukanya di Reflector untuk melihat apa lagi yang bisa digunakan. Salah satu hal yang lebih menarik adalah namespace LINQPad.Util yang memiliki beberapa barang yang digunakan oleh LINQPad secara internal.
sumber
.Dump()
atau metode lain di editor sumber, tekan F12 untuk "mencerminkan". Ini sekarang dibangun ke dalam alat!Mencapai batas teks StackOverflow dalam jawaban saya sebelumnya , tetapi masih ada ekstensi yang lebih keren di LinqPad. Salah satunya saya ingin menyebutkan:
Fungsi JavaScript (menggunakan
.Dump()
)Sejak versi 5.42 beta LinqPad, Anda dapat menanamkan fungsi JavaScript dan memanggilnya langsung dari kode C # Anda. Meskipun ini memiliki beberapa keterbatasan (dibandingkan dengan JSFiddle), ini adalah cara yang bagus untuk dengan cepat menguji beberapa kode JavaScript di LinqPad.
Contoh:
Dalam contoh ini, fungsi
jsFoo
dengan satu parameter disiapkan dan disimpan dalam variabelliteral
. Kemudian, itu diberikan dan dipanggil via.Dump().HtmlElement.InvokeScript(...)
, melewati parametertestparam
.Fungsi JavaScript digunakan
external.Log(...)
untuk menampilkan teks di jendela keluaran LinqPad, danalert(...)
untuk menampilkan pesan sembulan.Anda dapat menyederhanakan ini dengan menambahkan kelas / metode ekstensi berikut :
Kemudian Anda dapat memanggil contoh sebelumnya sebagai berikut:
Itu memiliki efek yang sama, tetapi lebih mudah dibaca (jika Anda ingin melakukan lebih banyak JavaScript ;-)).
Opsi lain, jika Anda suka ekspresi Lambda dan Anda tidak suka menentukan nama fungsi sebagai string setiap kali Anda memanggilnya, Anda bisa melakukan:
asalkan Anda telah menambahkan fungsi pembantu
ke kelas
ScriptExtension
. Ini akan menyelesaikan nama variabel yang Anda gunakan (di sinijsFoo
) yang kebetulan merupakan nama yang sama dengan fungsi JavaScript itu sendiri (Perhatikan bagaimana ekspresi lambda digunakan untuk menyelesaikan nama variabel, ini tidak dapat dilakukan dengan menggunakannameof(paramName)
di dalam fungsi)..Dump () - memperbarui pesan sebaris
Kadang-kadang berguna untuk menimpa teks yang Anda buang daripada meletakkannya ke baris baru, misalnya jika Anda melakukan kueri yang sudah berjalan lama dan ingin menampilkan progresnya, dll (lihat juga ProgressBar di bawah). Ini dapat dilakukan dengan menggunakan
DumpContainer
, Anda dapat menggunakannya seperti yang ditunjukkan padaContoh 1:
Perhatikan bahwa untuk beberapa objek yang lebih kompleks, Anda mungkin harus menggunakan
dc.UpdateContent(obj);
daripadadc.Content=...
.Contoh 2:
Util.ProgressBar
Menampilkan kemajuan juga dapat dilakukan dengan menggunakan ProgressBar sebagai berikut:
Contoh:
Ini mirip dengan contoh dump sebelumnya, tetapi kali ini menampilkan animasi progress bar yang bagus.
Unit testing dengan LinqPad - xUnit
Tahukah Anda bahwa Anda dapat menulis unit test di LinqPad? Misalnya, Anda dapat menggunakan kerangka kerja xUnit. Ini tersedia melalui dukungan NUGET LinqPad - via F4- di klik dialog Add NUGET..... Berikut ini adalah deskripsi langkah demi langkah cara menggunakan xUnit dengan LinqPad V5 atau V6.
Jika saya menemukan lebih banyak, saya akan memperbarui jawaban ini
sumber