3
다음 작업을 수행 할 수 있습니까? 당신이 컴파일 타임에 알 수없는 유형의 일반적인 방법을 호출 할 경우리플렉션을 사용하여 일반 "T"로 입력하십시오.
public static T Merge<T>()
{
object x = Activator.CreateInstance<T>();
//Do some stuff with x
return (T)x;
}
private static Type[] GetTypesInNamespace(Assembly assembly, string nameSpace)
{
return assembly.GetTypes().Where(
t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal) &
!t.IsInterface).ToArray();
}
public static void Main()
{
Type[] typelist = GetTypesInNamespace(
Assembly.GetExecutingAssembly(), "Myapplication.Web.DomainObjects");
Parallel.ForEach(typelist, type =>
{
var task1 = Task.Factory.StartNew(() => Merge<type>());
// is it possible to do this way? Merge<type> ??
});
}
eeeeuuuuhmm과 문제는 무엇인가
나는 당신이 정말로 원하는 것은 이런 작은 선물이라고 생각? 또는이 문장이 – Nealv
입니다. 죄송합니다. 질문은 바로 코드에 주석으로 있습니다. 설명해 드리겠습니다. 네임 스페이스 "Myapplication.Web.DomainObjects"에는 사용자 지정 개체 목록이 포함되어 있습니다. 하나씩 이름을 정하고 작업을 시작하고 싶지 않습니다. 대신 이러한 사용자 지정 개체를 가져와 병합에 전달하기 위해 리플렉션을 사용하십시오. – Princeton
실제로 질문을 편집하고 실제로 묻는 내용을 명확하게 만드는 것이 좋습니다. –