Исключение, которое вы получаете:
Ссылка на объект не установлена для экземпляра объекта.
Это потому, что entity2.MainApplicationId
равно нулю.Ваш класс Entity
не имеет конструктора, который бы устанавливал MainApplicationId
не равным NULL, поэтому вы видите ошибку.
Добавление конструктора в ваш класс Entity
, как показано в приведенном ниже коде, приводит кв вашем коде, работающем без ошибок:
public Entity()
{
ApplicationId = new GuidEntityMember();
ConnectedCount = new Int32EntityMember();
MainApplicationId = new GuidEntityMember();
ProcessId = new Int32EntityMember();
ProcessName = new StringEntityMember();
}
Использование Автоматически реализуемые свойства не приводит к тому, что базовые поля (которые создаются и управляются от вашего имени компилятором) будут new
d, когда экземпляр построен.Таким образом, следующие два свойства не одинаковы:
public MyClass MyProperty { get; private set; }
private MyClass _myOtherProperty = new MyClass();
public MyClass MyOtherProperty
{
get
{
return _myOtherProperty;
}
set
{
_myOtherProperty = value;
}
}