Bazen runtime esnasında bir kodu derleyip çıktısını elde etmek isteyebiliriz, en azından benim başıma geldi. 🙂 Bir projemde bana string olarak gelen bir değeri, örneğin “DateTime.Now()”, runtime esnasında derleyip çıktısını elde etmem gerekti.
Nasıl yapabileceğimize dair örneğe aşağıda bakabilir, ihtiyacınıza göre düzenleyebilirsiniz.
Selametle…
// Compile edeceğimiz örnek kodumuz.
string code = @"
using System;
namespace CompileCore
{
public class CompileHelper
{
public static string CompileDateTime()
{
return DateTime.Now.ToString(""dd.MM.yyyy HH:mm:ss"");
}
}
}
";
CSharpCodeProvider provider = new CSharpCodeProvider();
// System.CodeDom.Compiler namespace'inin altında bulunmaktadır.
CompilerResults results = provider.CompileAssemblyFromSource(new CompilerParameters(), code);
Type binaryFunction = results.CompiledAssembly.GetType("CompileCore.CompileHelper");
// Gerisi bir ufak reflection kodu ile ilglil metotu alıp delegate aracılığı ile çağırıyoruz.
var mInfo = binaryFunction.GetMethod("CompileDateTime");
var funcDelegate = (Func<string>)Delegate.CreateDelegate(typeof(Func<string>), mInfo);
return funcDelegate(); In the first part of this DevEx series, I tried to explain Platform Engineering and…
As an architect involved in platform engineering and DevEx transformation within a large-scale organization for…
{:en}In today’s technological age, we typically build our application solutions on event-driven architecture in order…
{:tr} Makalenin ilk bölümünde, Software Supply Chain güvenliğinin öneminden ve containerized uygulamaların güvenlik risklerini azaltabilmek…
{:tr}Bildiğimiz gibi modern yazılım geliştirme ortamında containerization'ın benimsenmesi, uygulamaların oluşturulma ve dağıtılma şekillerini oldukça değiştirdi.…
{:tr}Bildiğimiz gibi bir ürün geliştirirken olabildiğince farklı cloud çözümlerinden faydalanmak, harcanacak zaman ve karmaşıklığın yanı…
View Comments
Hocam selamlar, net 7 için güncelleme vakti gelmiş kodu bence :)