PDA

View Full Version : سوال: جستجو در بین کلاس های آماده c#



mehdihadeli
چهارشنبه 28 مهر 1389, 20:26 عصر
آیا در c# این امکان وجود دارد که بتوان برای یک موضوع از کلاس یا متد های آماده خود .net
استفاده کرد تا از نوشتن آن کد به صورت دستی جلوگیری شود

مثلا کلاسی مانند countDown وجود دارد که کار شمارش معکوس انجام دهد؟

flash118
چهارشنبه 28 مهر 1389, 20:39 عصر
دوست عزیز با این که مقصودتون رو درست متوجه نشدم اما براتون یه نمونه کد می گذارم که یکی از دوستان نوشتن متاسفانه لینک و منبع به یاد ندارم البته خودم هم کمی بهینه اش کردم براتون قرار میدم کار این برنامه که در محیط کنسول هست لیست dll های دات نت رو براتون با تعداد کل نشان میده

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Reflection;

namespace ConsoleApplication1
{
class Program
{
static string fileName = "types.txt";
static void Main(string[] args)
{
StreamWriter SW;
SW = File.CreateText(fileName);
SW.WriteLine("string[] mds = new string[] {");
SW.Write("\t\t\t\t\t");

DirectoryInfo directory = new DirectoryInfo(Environment.ExpandEnvironmentVariabl es("%SystemRoot%") + @"\assembly");

Assembly assembly;
Type[] types;

var DLL_Files = directory.GetFiles("*.dll", SearchOption.AllDirectories);

short i = 0;
int assembliesCounter = 0;
int typeCounter = 0;
int allAssemblies = DLL_Files.Length;
int counter = 0;

foreach (var file in DLL_Files)
{
assembliesCounter++;
try
{
assembly = Assembly.LoadFile(file.FullName);
types = assembly.GetTypes();
typeCounter = types.Length;
foreach (var type in types)
{
i++;
typeCounter--;
if (i > 10)
{
SW.WriteLine("\"" + type.Name.Replace("\\", "") + "\"" + ", ");
SW.Write("\t\t\t\t\t");
i = 0;
}
if (assembliesCounter >= allAssemblies && typeCounter <= 0)
SW.Write("\"" + type.Name.Replace("\\", "") + "\"");
else
SW.Write("\"" + type.Name.Replace("\\", "") + "\"" + ", ");
counter++;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}

SW.WriteLine("};");
SW.Close();

Console.WriteLine("\n{0} Types Found", counter.ToString());
Console.WriteLine("Finish");
Console.ReadKey();
}


}
}



دوست عزیز بازم تاکید میکنم این اونی نیست که شما میخواهید ولی دیدنش خالی از لطف نیست امیدوارم مفید واقع شده باشه موفق باشین