我需要將對象轉換爲System.Type
對象。將對象轉換爲linq中的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的值。
我希望通過「轉換」你的意思是「鑄造」? – Mehrdad
您不能靜態地將對象轉換爲由'System.Type'表示的類型。 –
@Mehrdad是... – eestein