Saya mencoba mengakses connectionStrings
dari file konfigurasi. Kode ini adalah ASP.NET + C #. Saya telah menambahkan System.Configuration
referensi dan juga disebutkan dengan menggunakan. Tapi tetap saja tidak akan menerima majelis.
Saya menggunakan VSTS 2008. Ada ide apa yang bisa menjadi alasannya?
Hal aneh lainnya adalah nama rakitan ditampilkan sebagai "Konfigurasi Sistem", huruf kecil c yang bukan bagaimana nama ditampilkan untuk rakitan Sistem lainnya.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
namespace Utility
{
public class CommonVariables
{
public static String ConnectionString
{
get { return ConfigurationManager.ConnectionStrings["EmployeeEntities"].ConnectionString; }
}
}
}
Konfigurasi:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="qbankEntities" connectionString="metadata=res://*/qbankModel.csdl|res://*/qbankModel.ssdl|res://*/qbankModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=qbank;Persist Security Info=True;User ID=**;Password=****;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
c#
.net
visual-studio
visual-studio-2008
pensil
sumber
sumber
Jawaban:
Tidak hanya perlu menggunakan namespace
System.Configuration
. Anda juga harus menambahkan referensi ke majelisSystem.Configuration.dll
, denganSystem.Configuration
.Ini pasti akan berhasil. Juga untuk
NameValueCollection
Anda harus menulis:sumber
Di proyek Anda, klik kanan, Tambah Referensi ... , di tab .NET, cari
System.Configuration
nama komponen dan klik OK.using System.Configuration
memberitahu kompiler / IntelliSense untuk mencari di namespace itu untuk setiap kelas yang Anda gunakan. Jika tidak, Anda harus menggunakan nama lengkap (System.Configuration.ConfigurationManager
) setiap kali. Tetapi jika Anda tidak menambahkan referensi, namespace / kelas itu tidak akan ditemukan di mana pun.Perhatikan bahwa DLL dapat memiliki namespace apa pun, sehingga
System.Configuration.dll
secara teori file tersebut dapat memiliki namespaceSome.Random.Name
. Untuk kejelasan / konsistensi mereka biasanya sama, tetapi ada pengecualian.sumber
Oke .. itu berhasil setelah restart VSTS. The Link menyarankan solusi untuk masalah yang sama. Seandainya aku bisa melihatnya sebelumnya. :)
sumber
Menambahkan
System.Configuration
referensi sebagai ke semua proyek akan menyelesaikan ini.Pergi ke
Project
->Add Reference
Di kotak yang muncul, klik
All assemblies
tab daftar di daftar sebelah kiri.Di daftar pusat, gulir ke
System.Configuration
dan pastikan kotak dicentang.Klik ok untuk mendaftar, dan sekarang Anda dapat mengakses
ConfigurationManager
kelas.sumber
Menambahkan jawaban ini, karena tidak ada solusi yang disarankan yang berfungsi untuk saya.
sumber
Jika Anda mendapatkan banyak peringatan (dalam kasus saya 64 dalam solusi!) Suka
karena Anda meningkatkan proyek yang lebih lama, Anda dapat menghemat banyak waktu sebagai berikut:
System.Configuration
sebagai referensi ke bagian Referensi Anda .Tambahkan dua
using
pernyataan berikut ke atas setiap.cs
file class ( ):using System.Configuration; using ConfigurationSettings = System.Configuration.ConfigurationManager;
Dengan perubahan ini semua kejadian dari
sekarang akan merujuk manajer konfigurasi yang tepat, tidak lagi yang sudah usang, dan semua peringatan CS0618 akan segera hilang.
Tentu saja, ingat bahwa ini adalah peretasan cepat. Untuk jangka panjang, Anda harus mempertimbangkan untuk mengembalikan kode tersebut.
sumber
Saya mendapatkan solusi yang lebih baik untuk masalah ini
configurationmanager does not exist in the current context
.Untuk membaca string koneksi dari
web.config
kita perlu menggunakanConfigurationManager
kelas dan metodenya. Jika Anda ingin menggunakan, Anda perlu menambahkan namespace menggunakanSystem.Configuration
;Meskipun Anda menggunakan namespace ini, ketika Anda mencoba menggunakan
ConfigurationManager
kelas maka sistem menunjukkan kesalahan "konfigurasi manajer tidak ada dalam konteks saat ini". Untuk mengatasi masalah ini:sumber
Apakah Anda yakin telah menambahkan referensi ke rakitan .NET dan bukan yang lain? Saya akan menghapus referensi Anda dan kemudian mencoba menambahkannya kembali, memastikan Anda memilih dari tab .NET di dialog referensi Visual Studio - versi terbaru harus 2.0.0.0 di GAC.
sumber
sekarang kamu bisa:
sumber
Untuk pemeriksaan kewarasan, coba buat Proyek Aplikasi Web baru, buka kode di belakang untuk halaman Default.aspx. Tambahkan baris di Page_Load untuk mengakses string koneksi Anda.
Seharusnya System.Configuration ditambahkan sebagai referensi secara default. Anda juga harus sudah melihat pernyataan penggunaan di bagian atas file kode Anda.
Kode saya di belakang file sekarang terlihat seperti ini dan dikompilasi tanpa masalah.
Ini mengasumsikan saya memiliki string koneksi di web.config saya dengan nama sama dengan "MyConnectionStringName" seperti begitu ...
Ya, itu dasar saya tahu. Tetapi jika Anda tidak memiliki ide yang lebih baik kadang-kadang ada baiknya memeriksa sesuatu yang sangat sederhana yang Anda tahu harus berhasil.
sumber
Cukup instal
lalu gunakan
sumber
Jika kode ini pada proyek yang terpisah, seperti proyek perpustakaan. Jangan memalsukan untuk menambahkan referensi ke konfigurasi system.
sumber
Anda juga bisa mendapatkan kesalahan ini jika Anda menambahkan referensi ke proyek yang berbeda dan tidak terkait karena kesalahan. Periksa apakah itu berlaku untuk Anda.
sumber
Untuk Mengatasi masalah ini, buka Solution Explorer Dan klik kanan referensi dan klik tambah referensi dan pilih .net dan temukan system.configuration pilih klik ok
sumber
Tambahkan file manajer konfigurasi untuk terhubung ke web.config database
sumber