我需要将对象转换为System.Type
对象。
我读过 C# 是静态类型的,所以这是不可能的。
这是真的?
如果是,我该如何做到这一点?
Assembly myDll = Assembly.LoadFrom(dllData.Path);
Type manyAttribute = myDll.GetExportedTypes().FirstOrDefault(...);
Type multiplicityAttribute = myDll.GetExportedTypes().FirstOrDefault(..);
//Here is the problem
propertiesOnOtherFile = propertiesOnOtherFile.Where(t =>
t.GetCustomAttributes(false).Any(ca =>
!string.IsNullOrEmpty(((multiplicityAttribute)ca).PropertyName)));
这是行:
((multiplicityAttribute)ca).PropertyName)
有没有其他方法可以做到这一点?
编辑:
由于许多问题,这是我的范围:
public class PocoClass
{
[ManyAttribute]
public ObjectX MyProp;
}
ManyAttribute declaration
{
public string PropertyName;
}
ManyAttribute 在动态加载的 DLL 中。然后,就像我上面的示例一样,我需要将 customAttribute (ManyAttribute) 转换为 ManyAttribute,以便检查 PropertyName 的值。