내가 인터페이스를 구현 유형에 대한 특정 네임 스페이스를 스캔, 오히려 단지 형식보다는 그 인터페이스로를 반환하기 위해 노력하고있어에 GetTypes()를 캐스팅 할 수 없습니다,하지만 난 InvalidCastException이는 인터페이스
IEnumerable<IGameScript> GetDemos()
{
var results = Assembly.GetExecutingAssembly().GetTypes()
.Where(
x => x.IsClass
&& x.Namespace == "MMOClass.CodeBase.Demos"
&& x.Name.Contains("Demo")
&& x.GetInterfaces().Contains(typeof(IGameScript))
).Select(x => x);
return results.Cast<IGameScript>();
}
을 받고 있어요 리드의 대답에 응답
업데이트 :이
IEnumerable<IGameScript> GetDemos()
{
var results = Assembly.GetExecutingAssembly().GetTypes()
.Where(
x => x.IsClass
&& x.Namespace == "MMOClass.CodeBase.Demos"
&& x.Name.Contains("Demo")
&& x.GetInterfaces().Contains(typeof(IGameScript))
).Select(x => Activator.CreateInstance(x) as IGameScript);
return results;
}