Refleksiya va atributlar
Atributlar dastur ob'ektlariga aks ettirishdan foydalangan holda ish vaqtida ob'ekt haqida ma'lumot berish uchun turlar va usullar kabi biriktirilgan. Atributlardan foydalanishga misol sifatida vizual studio usullar va turlar uchun taqdim etadigan yordam kontekst menyusidir.
Biz atribut sinfini oddiy sinf kabi e'lon qilishimiz mumkin, lekin u System.Attribute dan olingan bo'lishi va uni AttributeUsage atributi bilan belgilashi kerak. AttributeUsage atributi atribut qo'llanilishi mumkin bo'lgan dastur ob'ektlarini belgilaydi.
Atribut sinflari ikki xil parametrga ega
Nomlangan parametrlar
Pozitsion parametrlar
Biz ish vaqtida dastur ob'ekti haqidagi ma'lumotlarni topish va ish vaqtida turdagi namunani yaratish uchun aks ettirishdan foydalanishimiz mumkin. Ko'p aks ettirish uchun zarur bo'lgan sinflar va interfeyslarning aksariyati System.Reflection nom maydonida aniqlanadi.
System.Type .NETda aks ettirish funksiyasi bilan ishlash uchun eng asosiy hisoblanadi va u CTSdagi turni ifodalaydi.
Type obyektini olishning bir necha usullari mavjud
atribut.JPG
Turning namunasiga ega bo'lganimizdan so'ng, GetMembers() yoki GetMethods() kabi bir nechta usullardan foydalangan holda tur haqida ma'lumot olishimiz mumkin. Quyida Type sinfida aniqlangan usullar keltirilgan.
Quyida System.Reflection nom maydonida belgilangan asosiy sinflar keltirilgan
Assambleya Assambleyani ifodalaydi
EventInfo Ushbu sinf ma'lum bir voqea uchun ma'lumotlarni o'z ichiga oladi.
FieldInfo Bu sinf ma'lum bir soha uchun ma'lumotlarni o'z ichiga oladi.
A'zo ma'lumotlari Class - bu sinfning barcha a'zolari haqida ma'lumot olish uchun ishlatiladigan sinflar uchun mavhum asosiy sinf. MethodInfo Bu sinf ma'lum bir usul uchun ma'lumotlarni o'z ichiga oladi.
ConstructorInfo Bu sinf ma'lum konstruktor uchun ma'lumotlarni o'z ichiga oladi.
ADO.NET yordamida berilganlar bazasi bilan ishlash.
Ushbu sahifadagi kodlar ro'yxati quyidagi ADO.NET texnologiyalaridan foydalangan holda ma'lumotlar bazasidan ma'lumotlarni qanday olish mumkinligini ko'rsatadi:
ADO.NET ma'lumot provayderlari:
SqlClient ( System.Data.SqlClient)
OleDb ( System.Data.OleDb)
Odbc ( System.Data.Odbc)
OracleClient ( System.Data.OracleClient)
ADO.NET Entity Framework:
LINQ to Entities
ObjectQuery yozildi
EntityClient ( System.Data.EntityClient)
LINQ to SQL
SqlClient
Ushbu misoldagi kod siz NorthwindMicrosoft SQL Serverdagi namunaviy ma'lumotlar bazasiga ulanishingiz mumkinligini nazarda tutadi. Kod Mahsulotlar jadvalidan satrlarni tanlash uchun SqlCommand ni yaratadi , natijalarni belgilangan parametr qiymatidan kattaroq UnitPrice bo'lgan satrlarga cheklash uchun SqlParameter qo'shadi, bu holda 5. SqlConnection blok ichida ochiladi using, bu esa resurslarning mavjudligini ta'minlaydi. kod chiqqanda yopiladi va utilizatsiya qilinadi. Kod SqlDataReader yordamida buyruqni bajaradi va natijalarni konsol oynasida ko'rsatadi. Agar siz dan foydalanayotgan bo'lsangiz System.Data.SqlClient, yangilash haqida o'ylashingiz kerak, Microsoft.Data.SqlClientchunki bu erda kelajakdagi investitsiyalar va yangi xususiyatlar ishlanmalari amalga oshiriladi. Qo'shimcha ma'lumot olish uchun qarangYangi Microsoft.Data.SqlClient bilan tanishtirish
using System;
using System.Data;
using System.Data.OleDb;
class Program
{
static void Main()
{
// The connection string assumes that the Access
// Northwind.mdb is located in the c:\Data folder.
string connectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ "c:\\Data\\Northwind.mdb;User Id=admin;Password=;";
// Provide the query string with a parameter placeholder.
string queryString =
"SELECT ProductID, UnitPrice, ProductName from products "
+ "WHERE UnitPrice > ? "
+ "ORDER BY UnitPrice DESC;";
// Specify the parameter value.
int paramValue = 5;
// Create and open the connection in a using block. This
// ensures that all resources will be closed and disposed
// when the code exits.
using (OleDbConnection connection =
new OleDbConnection(connectionString))
{
// Create the Command and Parameter objects.
OleDbCommand command = new OleDbCommand(queryString, connection);
command.Parameters.AddWithValue("@pricePoint", paramValue);
// Open the connection in a try/catch block.
// Create and execute the DataReader, writing the result
// set to the console window.
try
{
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}\t{2}",
reader[0], reader[1], reader[2]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
|