(1) пространство имен ClassLibrarySport
{
общественный абстрактный класс Sport
{
защищенное имя строки;
общедоступная абстрактная строка GetName();
общедоступная абстрактная строка GetDuration();
}
}
= = = = = == = == = == = == = == = == = == = == = == = = = == = == = == = == = = = = =
(2)пространство имен ClassLibrarySomeSports//该项目添加了对(1)的引用
{
public class Football : ClassLibrarySport.Sport
{
public Football()
{
name = "Football";
}
Общественная строка переопределения GetName ()
{
возвращенное имя;
}
public override string GetDuration()
{
return "четыре квартала по 15 минут";
} }
}
=
= = = = == = == = == = == = == = == = == = == = == = == = == = == = == = == = == = =
(3)пространство имен ConsoleAssemblyTest//该项目添加了对(1)的引用
{
class Program
{
static void Main(string[] args)
{
Сборка сборки = Assembly.LoadFrom(@"E:ClassLibrarySomeSports
bin DebugClassLibrarySomeSports.dll");
Тип[] типы = сборка.GetTypes();
Console.WriteLine("Получить тип из ClassLibrarySomeSports.dll:");
for (int i = 0; i <types.Length; i++)
{
Console.WriteLine(types[i].Name);
}
//Запуск GetConstructor() в режиме реального времениConsole.WriteLine("Use Method GetConstructor()
:");
ConstructorInfo ci = типы[0].GetConstructor(новый тип[0]);
ClassLibrarySport.Sport sport = (ClassLibrarySport.Sport)ci.Invoke(новый объект[0]);
Console.WriteLine(sport.GetName() + "имеет" + sport.GetDuration());
//Создать активатор.CreateInstance()方法构造出该类型的对象
//Создать сборку.CreateInstance()返回为null,??
Console.WriteLine("Использовать метод CreateInstance():");
ClassLibrarySport.Sport sport1 = (ClassLibrarySport.Sport)
Activator.CreateInstance(types[0]);
Console.WriteLine(sport1.GetName() + "имеет" + sport1.GetDuration());
// вызов функции GetDuration, вызов Invoke(), вызов функции
object objSport = Activator.CreateInstance(types[0]);
Метод MethodInfo = типы[0].GetMethod("GetDuration");
объект o = метод.Invoke(objSport, новый объект[0]);
Console.WriteLine(o как строка);
Консоль.Читать();
}
}
}
= = = = = == = == = == = == = == = == = == = == = == = == = == = ==
Выходные данные:
Получить тип из ClassLibrarySomeSports. dll:
Футбол.
Используйте метод GetConstructor():
Футбол состоит из четырех четвертей по 15 минут.
Используйте метод CreateInstance():
Футбол состоит из четырех четвертей по 15 минут.
Четыре четверти поминут.