オブジェクトをオブジェクトにキャストする必要があり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 の値を確認します。