2016-03-24 14 views
0

Prizma 6 WPF MVVM modüler uygulama geliştiriyorum. Bir Shell projesini ve birçok Prism modül projesini içeren başvurumun çözümü. Uygulamamda Dinamik Kaynak C# Kod Üretimi ve Derlemesi (CodeDom) gerçekleştirmem gerekiyor. CodeDOM grafiğini oluşturmak ve derlemek için genel yöntemleri çağırmak için uygulama çözümümdeki herhangi bir Prizma modül projesinden 'görünür' olan bazı ortak sınıf kitaplığında (CL projesi) kod koymayı (ondan derleme kodunu oluşturmayı) yapıyorum. Uygulamadaki herhangi bir Prism modülünden onlardan montajlar. Ancak, uygulamamdaki herhangi bir Prism modülünden derlenebilecek montajın nasıl yapılacağını bilmiyorum (yani her prizma modülü, CodeDOM grafiğinden derlenerek derleme çağrısı yapabilmelidir). CodeDOM grafiğinin sınıf kitaplığı olarak derlenmesini (GenerateExecutable özelliği false olarak ayarlanmış) derleneceğini varsayalım. Ben derlenmiş derlemenin disk yerine belleğe yazılmasını istiyorum (CompilerParameters.GenerateInMemory = true). CodeDOM grafiğinden derlenen bu derlemenin, uygulamamdaki tüm prizma modülleri tarafından görülebilmesini istiyorsanız ne yapmalıyım ve tüm bu modüller, ortak yöntemlere ve özelliklerin çağrısından yararlanabilir mi? İlk önce Dynamic Source C# Code Generation kullanıyorum ve daha önce kullanmamıştım. Yani yardımınız çok takdir edilecek.Bu kodun herhangi bir Prism modülünden erişilebilir olması gerekiyorsa, Prismi modüler uygulamasında CodeDOM Graph'dan derlenmiş kodu nereye koymalıyım?

cevap

0

Prizma Modülleri diğer modüllere bağlı olabilir.

CodeDOM modülünü diğer tüm modüllerin bir bağımlılığı haline getirin ve tek tek modüllerin çalışma zamanı derlenmiş derlemenize erişmesi/çağrılması için gereksinim duyduğunuz işlevselliği sağlamak için bir hizmet arabirimini/olaylarını paylaşın.

+0

toadflakz, Uygulamamdaki tüm modüllerin CodeDOM grafiğinden derlenen bir kod referansı olması gerektiğini aklınızda bulundurun. Ancak bu kod belleğe yazılacak, ancak dosyaya yazılmayacak! Her bir prizma modülünde CodeDOM grafiğinden derlenen hafıza montajına yapılan referansı belirlemek için bir yol var mı? –

+0

Derlemeleri çalışma zamanında dinamik olarak yükleyebilirsiniz, bu nedenle CodeDOM modülünüzün işlevselliğinin bir kısmı, gerektiğinde diğer modüllere iletmeyi başarabilir. – toadflakz

İlgili konular