2012-06-19 2 views
1

Глядя на определение System.Dynamic.ExpandoObject я наткнулся на это:C# - определение ExpandoObject

public sealed class ExpandoObject : IDynamicMetaObjectProvider, IDictionary<string, object>, ICollection<KeyValuePair<string, object>>, IEnumerable<KeyValuePair<string, object>>, IEnumerable, INotifyPropertyChanged 
{ 
    public ExpandoObject(); 
} 

Почему класс ExpandoObject не реализует интерфейсы?

ответ

2

ExpandoObject имеет интерфейсы explicit implementation. Явное имплантация позволяет ему быть доступным только при использовании в качестве самого интерфейса.

0

Я использовал ILSpy на System.Core 4.0.0.0 и получить

enter image description here

Так implentations присутствуют на самом деле ...

+0

, но почему это не видно через Visual Studio? Могу ли я сделать то же самое с моими типами? –

1

Используя что-то вроде .Net Reflector вы можете увидеть реализацию каждого интерфейса. Код слишком длинный, чтобы публиковать здесь, но он все там. Просто выполните поиск в рефлекторе для ExandoObject, и вы увидите участников.

 Смежные вопросы

  • Нет связанных вопросов^_^