Свойство ModelExplorer.Metadata
, к которому вы обращаетесь, имеет тип ModelMetadata
. Если вы посмотрите на этот тип, вы увидите, что у него нет члена Attributes
, к которому вы могли бы получить доступ.
Однако, тип времени выполнения объекта, который находится в modelExplorer.Metadata
, является типом DefaultModelMetadata
, который имеет , имеет Attributes
member .
Поскольку отладчик заботится только о типах среды выполнения, вы можете получить доступ к этому свойству. Но когда вы пытаетесь сделать это в коде, вы ограничены типами времени компиляции. Для доступа к свойству Attributes
сначала необходимо привести тип:
ModelMetadata metadata = modexlExplorer.Metadata;
// metadata.Attributes does not exist
DefaultModelMetadata defaultMetadata = (DefaultModelMetadata) metadata;
// defaultMetadata.Attributes exists