Трассировка и отладка в .NET

         

Создание с помощью С# управляемого



Создание с помощью С# управляемого клиента на основе модели компонентных объектов Microsoft (COM) без метаданных

В целях сравнения предыдущая программа клиента на управляемом C++ реализована снова, теперь уже на С#. Новая реализация приведена ниже. Выдача новой программы, естественно, та же, что и у старой. Как и предыдущий пример, новая программа интересна прежде всего тем, что ей не нужна сборка из метаданных. Следовательно, не нужно ни добавлять ссылку к проекту, ни инсталлировать сборку. Вместо этого, информация о типе разыскивается интерпретатором динамически, т.е. во время выполнения, с помощью отражающего программного интерфейса приложения (reflection API).

//ManagedCSharpCOMClientWithoutMetadata.cs
using System;
// использование Системы;
using System.Reflection;
namespace ManagedCSharpCOMClientWithoutMetadata
// пространство имен
ManagedCSharpCOMClientWithoutMetadata
{
public class Test


// общедоступный класс Испытание
{
public static void Main(string[] args)
// общедоступная статическая Главная (строка параметров)
{
Type type; // Тип типа
Object obj; // Объект
Object[] argArray = new Object[2]; // новый Объект [2]
type = Type.GetTypeFromProgID( // Тип
"LegacyCOMServer.LegacyCOMObj.1");
obj = Activator.Createlnstance(type);
// obj = Активатор.
Createlnstance (тип);
argArray[0] = 3;
argArray[l] = 4;
Object sum = type.InvokeMember(
// Объект сумма = тип.InvokeMember (
"AddEmUp",
BindingFlags.InvokeMethod,
null, // пустой указатель
obj,
argArray
) ;
Console.WriteLine(sum); // сумма
}
}
}

Если вы запустите эту программу, то увидите выдачу, которая в точности совпадает с выдачей предыдущих программ клиентов, построенных на основе модели компонентных объектов Microsoft (COM).



Содержание раздела