kütüphaneler arasında ApplicationSettings

oy
0

Ben ayrı kütüphaneye dışarı soyut tüm veritabanı koduna saldırması ve daha sonra bütün kodunda o kütüphaneyi kullanma ediyorum. Tüm veritabanı bağlantıları Ben AppSettings'i bir bağlantı dizesi kullanarak, sürükleyip VS2005 içinde veri kümelerinde bırakarak oluşturmak Yazılan TableAdapters kullanılarak yapılır.

Ben çözmek mümkün olmamıştır sorun .Net nasıl kullanıyorsa diğer projeye kütüphaneler appSettings yaymak olmamasıdır.

Kısacası, bir veritabanı katmanı kütüphane var, böyle ben .Client tüm veri setlerini vardı zaman connectionString MyProgram.Client.exe.config oldu MyProgram.Client vb gibi diğer projeler tarafından kullanılan MyProgram.DbLayer, böylece Ben yapı sonra bunu değiştirebilir. Ben MyProgram.DbLayer içine taşındı zaman ikilileri inşa sonra bu ayar bana geçerli değildir.

DÜZENLEME: Bu ApplicationSettings ile daha genel bir sorun gibi görünüyor.

Ne fark elle ayar ekle keşke düzgün okunacak bir kütüphanede kullanılan olmasıydı. Ayar de otomatik olarak .config dosyasına dahil edilecek için şimdi gereken tek şeydir.

Oluştur 09/12/2008 saat 15:59
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
1

AppSettings'i / connectionStrings daima anda çalışan uygulama havuzundan okunacaktır.

Bu demektir ki:

Ben varsa A.exebir sınıf olan DAL.cs. DAL.cs yapılandırmasındaki bir bağlantı dizesini okur ve döndürür "abc"beklendiği gibi.

Sonra, böylece kendi takımını kendi projesine DAL.cs taşımak ve. Hala, bu ancak, app.config gelen bağlantı dizesi çağrı olabilir ben "ev sahibi" çalışan bir uygulama montaj gerekir ve bu uygulamalar app yapılandırma bağlantı dizesini ekleyecektir . Yani, yeni bir app.config oluşturmak ve bağlantı dizesi belirtin "xyz"çalıştırıldığında beklendiği gibi, koşar, onun içinde.

Ben de başvuru değiştirmek Şimdi, eğer A.exeyeni kullanmaya projenin DAL.dllne bağlantı dizesi bunu olacak sizce? "xyz"? Hayır! O kullanacak "abc"hala için uygulama yapılandırma dosyasında yapılandırıldığı için daha önce olduğu gibi A.exe.

Ben birçok Windows'un genelinde DAL kodu paylaşılan kullanılan çünkü bu işler biliyor ve Web uygulamaları.

Bunların hiçbirini belli değildir ya sorununuzu yardımcı olmazsa, bana bu cevabı hakkında yorum yaparak bildirin.

OP yorumları sonrasında Güncelleme

"Konak" derken ortak kod çağıran bir uygulamayı demek. Bu bir Windows veya bir Web uygulaması olabilir, temelde uygulama bağlamdır.

Ortak kod kullanan her uygulama için yapılandırma dosyaları girişleri oluşturmak gerekecektir. Ben baştaki soru yanlış ise (!, Uzun bir gün tamamen mümkün olmuştur) ve o zaman gerekir, hem de yapılandırmayı merkezileştirme isteyen:

  • merkezi depolama çeşit oluşturun (XML olsun, DB, neyse).
  • merkezi depolama bağlanmak için etkinleştirmek için varsayılan değerlerine sahip ortak kodunuzu geliştirin.
  • Oradan, kod sonra yapılandırma deposunda bilgilere dayanarak, kendisini yapılandırabilir.

Bu yardımcı olur umarım :)

Cevap 09/12/2008 saat 16:14
kaynak kullanıcı

oy
1

Eğer doğru sorununuzu anlamak ihtiyacınız gibi, bu sesler

Tüm veri erişim aramalar için 1.) yaygın bir uygulama kapsamında

veya

yapılandırma ayarlarını erişme 2.) farklı bir yolu

1: Tek bir bağlamında çalışan bir hizmet içinde veri katmanı sarın (IIS, Windows Hizmet, vs)

2: sağlanır Konfigürasyon Yönetimi mekanizmasını kullanmayın. Bunun yerine belirli bir konumdaki mülkiyet dosyaları kullanın.

Unutma farklı düzeylerde yapılandırma ayarları kaskad olduğunu bile. Eğer machine.config bir ayarı eklerseniz daha düşük bir seviyede değiştirilmediği sürece Örneğin ... sonra bu makinede çalışan her uygulama bu ayarı kullanır ... Bu kurulum içinde standardize ayar için iyi bir yol olabilir senin yapılandırma dosyaları.

Cevap 09/12/2008 saat 16:22
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more