Конвертация в .NET Reflection - PullRequest
       1

Конвертация в .NET Reflection

1 голос
/ 07 августа 2011

Где я могу найти методы преобразования, такие как

    public static implicit operator MyType(OtherType d)
    public static implicit operator OtherType(MyType d)

в Type объекте?

Ответы [ 3 ]

5 голосов
/ 07 августа 2011

Вы найдете операторы, если спросите тип для его методов.Свойство IsSpecialName метода вернет true.Например:

using System;

public class Foo
{
    public static implicit operator int(Foo input)
    {
        return 0;
    }
}

class Test
{
    static void Main(string[] args)
    {
        foreach (var method in typeof(Foo).GetMethods())
        {
            Console.WriteLine(method + ": " + method.IsSpecialName);
        }
    }
}
0 голосов
/ 07 августа 2011

не уверен, но в соответствии с http://www.codeproject.com/KB/cs/Csharp_implicit_operator.aspx компилятор генерирует как методы IL со специальным именем op_Implicit и соответствующим типом параметра / типом результата.

Так что, позвонив по номеру GetMethods, вы получите то, что ищете.

0 голосов
/ 07 августа 2011

Чего вы пытаетесь достичь на самом деле?Документация для класса «Тип» может быть найдена здесь: http://msdn.microsoft.com/en-us/library/system.type.aspx

Но какова их реализация по умолчанию в объекте Type?Нет никакого разумного преобразования между, например, string и Type.

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