Почему нет реализации для методов StructuralObject? - PullRequest
1 голос
/ 02 октября 2010

Я ищу методы System.Data.Objects.DataClasses.StructuralObject в Reflector и вижу, что ни один из методов не реализован.

Я понимаю, что некоторые методы, такие как большинство SetValidValue, перегружаютсябыли отмечены как зарезервированные для будущего использования, как указано в их документации.

Но даже другие, такие как:

protected internal static bool BinaryEquals(byte[] first, byte[] second);

protected static DateTime DefaultDateTimeValue();

protected internal static byte[] GetValidValue(byte[] currentValue);

protected internal T GetValidValue<T>(T currentValue, string property, 
                                      bool isNullable, bool isInitialized) 
                                      where T: ComplexObject, new();

protected internal T SetValidValue<T>(T oldValue, T newValue, 
                                                  string property) 
                                                  where T: ComplexObject;

protected internal static TComplex VerifyComplexObjectIsNotNull<TComplex>(
                                                  TComplex complexObject, 
                                                  string propertyName) 
                                                  where TComplex: ComplexObject;

Даже эти методы не имеют реализации.Что-то мне не хватает?

Во-вторых, EntityObject наследуется от StructuralObject.Эти методы, кажется, не имеют большого смысла для EntityObject.Например, почему я должен сделать этот звонок:

public partial class Address: EntityObject
{
    public void SomeMethod()
    {
        SetValidValue(0); // On what property or field would I be 
                     // setting this value? It doesn't
                     // seem to belong here.
    }
}

1 Ответ

2 голосов
/ 02 октября 2010

Я смотрю на эти типы в Reflector, и у всех методов есть реализация. Большинство из них очень просты (особенно в случае SetValidValue), но есть реализация.

Похоже, вы загружаете метаданные / справочную сборку в Reflector. Эти сборки содержат только определения метаданных типов и методов, но не содержат реального кода. Попробуйте выгрузить сборки и перезагрузить их из места, где будет реализация. Обычно я просто использую функцию Open Cache в Reflector для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...