Можно ли узнать, был ли System.Object действительно задан как динамический (C #)? - PullRequest
0 голосов
/ 12 марта 2011

У меня есть пара сценариев, которые охватывают это, но я напишу конкретно о том, который легче продемонстрировать

У меня есть заводской интерфейс:

interface IFactory
{
  Create<T>();
}

И кусоккода, который использует его таким образом:

public static void func(IFactory f)
{
  var o = f.Create<dynamic>();
}

Теперь, в реализации Create<T>() - есть ли какой-либо способ, посредством отражения над T, определить, намеревается ли вызывающая сторона выполнить динамическую диспетчеризацию на своихобъект в отличие от простого object?У меня есть класс, в котором было бы очень полезно сделать такое различие ...

Я посмотрел, могу ли я найти атрибуты типа или что-то в этом роде, но не радости.

1 Ответ

2 голосов
/ 12 марта 2011

dynamic находится в глазу вызывающего абонента только , поэтому нет; это не возможно AFAIK. Что касается Create, то это просто object.

...