spring.net中的abstract =“true”是什么?

时间:2010-10-19 00:02:35

标签: spring.net

当我将对象标记为abstract =“true”时,我看到了奇怪的行为。当我将对象标记为abstract =“true”时,对象的行为方式如何?什么是abstract =“true”。

何时使用abstract =“true”?因为我可以使用parent =“object id”继承该属性而不将标记的父对象作为abstract =“true”。

奇怪的行为:

当我引用抽象标记对象时,spring正在抛出一个错误(内部异常:Spring.Core.TypeMismatchException:无法将[Spring.Objects.Factory.Support.RootObjectDefinitio n]类型的属性值转换为所需类型)< / p>

但是当我运行单元测试并使用“Spring.Testing.NUnit.AbstractDependencyInjectionSp ringContextTests”按类型通过autowire注入依赖项时,弹簧正在正确地注入抽象标记对象,这很奇怪。

我不知道发生了什么事?

e.g。

公共类车辆
{
public int NoOfTyre {get;组; }
public string Color {get;组; }
public string EngineType {get;组; }
public string GearType {get;组; }
public string DrivingStyle {get;组; }
public string Manufacture {get;组; }
}

公共类汽车:车辆
{
public string DoorType {get;组; }
}

公共级滑板车:车辆
{
public string ScooterType {get;组; }
}

 

请帮忙!

干杯, Milind

1 个答案:

答案 0 :(得分:6)

  

何时使用abstract =“true”?因为我   可以使用继承属性   parent =“object id”,没有标记   父对象为abstract =“true”

Sprint.Net文档中的object definition inheritance部分很好地解释了它。

如果仅使用对象定义来创建子定义,则使用abstract="true"。这可能是这种情况,因为您知道定义是不完整的,因为没有相应的.NET类,或者只是表达您的意图,即定义只是一个可重用的模板。