이들은 다음과 같은 질문입니다. How-to: Load a type from a referenced assembly at runtime using a string in Silverlight, GetType on a class in a referenced assembly fails하지만 둘 다 대답하지 않습니다.클래스 이름을 string으로 제공하여 참조 된 어셈블리에서 유형을 가져 옵니까?
일반 유형을 문자열로 포함하는 데이터베이스에서 데이터를 가져 오는 MVC 프로젝트가 있습니다. 이러한 유형은 MVC 프로젝트가 아닌 참조 된 어셈블리에 있습니다.
그래서 예를 들면의 내 참조 된 어셈블리 이름이 MyFramework
하고 일반 유형 이름 Car
이 전체 유형 이름은 MyFramework.Cars.Car
또는 MyFramework.Vehicles.Cars.Car
또는 다른 변화 될 수있다 가정 해 봅시다. 내가 가진 모든 참조 된 어셈블리 이름 및 일반 클래스 이름을 문자열로 있습니다. 전체 형식 이름에 관계없이 형식을 얻으려면 어떻게해야합니까?
마지막으로 GetType()을 호출하고 MvC 프로젝트에서이 함수를 사용하여 어셈블리 이름을 포함시킬 수있는 함수를 작성할 수 있습니까? 그래서 나는 내가 좋아하는 참조 된 어셈블리의 백분율을 쓸 수 있다고 생각 어셈블리 이름을 아는 제거 할 :
namespace MyFramework //the referenced assembly
{
public static class TypeUtil
{
public static Type GetFrameworkType(string typeName)
{
return Type.GetType(typeName);
}
}
}
그리고 내 MVC 프로젝트에서 내가 문자열 이름으로 어셈블리를 필요로하지 않고 호출 할 수 있습니다. 그게 가능할까요, 아니면 항상 어셈블리 이름이 필요할까요?
다른 답변이 작동하지 않는 이유는 무엇입니까? –
@RobertHarvey 그저 평범한 클래스 이름을 가지고 있기 때문입니다. 전체 형식 이름이 아닙니다. 이러한 답변은 전체 유형을 아는 데 의존합니다. – SventoryMang