以下のコードで定義されているインターフェイスを実装するクラスのオブジェクト型を返そうとしています。インターフェイスから 'IsAssignableFrom'を呼び出すと、具象クラスが返されない
LINQ文は唯一のインタフェース自体を返し、そのコンソール出力はちょうどです:
AssignableExperiment.IRule
はなぜ具体的なクラスが返却されていませんか?
using System;
using System.Linq;
namespace AssignableExperiment
{
public interface IRule
{
void Validate(string s);
}
public class ConcreteRule : IRule
{
public void Validate(string s)
{
// some logic
}
}
class Program
{
static void Main(string[] args)
{
var ruleType = typeof(IRule);
var ruleTypes = from t in ruleType.Assembly.GetTypes()
where t.IsAssignableFrom(ruleType)
select t;
foreach (var type in ruleTypes)
{
Console.WriteLine(type);
}
Console.ReadLine();
}
}
}
私は私が愚かであることを知っていました。ありがとうございました! – Nick