Сравнение типов C # - PullRequest
       2

Сравнение типов C #

2 голосов
/ 14 июня 2010

Это заставило меня переписаться, есть ли какая-либо причина, следующая:

public abstract class aExtension
{
    public abstract bool LoadExtension(Constants c); // method required in inherit
    public abstract string AppliesToModule // property required in inherit
    {
        get;
    }
    public abstract string ExtensionName // property required in inherit
    {
        get;
    }
    public abstract string ExtensionDescription // property required in inherit
    {
        get;
    }
}

public class UK : aExtension
{
    public override bool LoadExtension(Constants c)
    {
        return true;
    }
    public override string AppliesToModule
    {
        get { return "string"; }
    }
    public override string ExtensionName
    {
        get { return "string"; }
    }
    public override string ExtensionDescription
    {
        get { return "string"; }
    }
}

вернет false для следующих выражений:

                bool a = t.IsAssignableFrom(aExtension));
                bool b = t.BaseType.IsAssignableFrom(aExtension));
                bool c = typeof(aExtension).IsAssignableFrom(t);
                bool d = typeof(aExtension).IsAssignableFrom(t.BaseType);
                bool e = typeof(aExtension).IsSubclassOf(t);
                bool f = typeof(aExtension).IsSubclassOf(t.BaseType);
                bool g = t.IsSubclassOf(typeof(aExtension));
                bool h = t.BaseType.IsSubclassOf(typeof(LBT.AdMeter.aExtension));
                bool i = t.BaseType.Equals(typeof(aExtension));
                bool j = typeof(aExtension).Equals(t.BaseType);

T -Отраженный тип из Великобритании.

Stange: я делаю ту же самую вещь только на внешней сборке в том же приложении, и она работает, как и ожидалось ...

Ответы [ 2 ]

1 голос
/ 14 июня 2010

UK возможно наследует aExtension от другой версии сборки.

0 голосов
/ 14 июня 2010

У вас есть копия той же сборки вокруг?Если одна и та же сборка загружается из другого места, типы несовместимы.

Загружаете ли вы сборки только отражением где-то?Я думаю, у меня были проблемы с этим.

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