Использование методов объекта без приведения - PullRequest
0 голосов
/ 14 января 2011

У меня проблема с приведением типов / типов и т. Д.

Во-первых, мой запрос является продолжением другого поста: Инициализация универсального объекта из System.Type

Итак, чтобы продолжить с этого вопроса, как я могу использовать методы моего недавно созданного объекта?

то есть, что я хочу сделать, это следующим образом:

Type iFace = typeof(IService1);
Type genericListType = typeof(System.ServiceModel.ChannelFactory<>).MakeGenericType(iFace);
object factory = Activator.CreateInstance(genericListType, new object[]
                    {
                        new BasicHttpBinding(),
                        new EndpointAddress("http://localhost:1693/Service.svc")
                    });
var channel = factory.CreateChannel();

byКстати, хотя я использую это приложение для WCF, это не проблема WCF

Ответы [ 2 ]

2 голосов
/ 14 января 2011

Без динамических объектов:

object factory = Activator.CreateInstance(genericListType, new object[]
{
    new BasicHttpBinding(),
    new EndpointAddress("http://localhost:1693/Service.svc")
});

Type factoryType = factory.GetType();
MethodInfo methodInfo = factoryType.GetMethod("CreateChannel");
var channel = methodInfo.Invoke(factory) as YourChannelType;
2 голосов
/ 14 января 2011

Попробуйте использовать динамический объект ? Это позволяет вам вызывать методы, которые могут существовать или не существовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...