我的问题是,在对我正在处理的项目进行了tfs更新之后,我再也不能做任何测试了。在更新之前,它成功了,但是现在每次在我的testclass‘Spring.Core.TypeMismatchException方法中运行ContextRegistry.GetContext()方法时,我都会得到一个Init()。
MyProjectDao上唯一的更改是其方法中的更改,并添加了属性。并且已经向SpringContext.xml添加了一个服务。
这是我得到的例外:
创建上下文‘Spring.root’的System.Configuration.ConfigurationErrorsException: System.Configuration.ConfigurationErrorsException:错误: PropertyAccessExceptionsException (1个错误);嵌套PropertyAccessExceptions是: [ CompositionAopProxy_f81c875c2f994f88bb773f5743050b67 :不能将属性'MyProjectDao‘的属性值转换为所需的类型MyProject.Dao.MyProjectDao,内部异常:不能将CompositionAopProxy_f81c875c2f994f88bb773f5743050b67类型的属性值转换为属性’MyProjectDao‘所需的类型MyProject.Dao.MyProjectDao。在Spring.Core.TypeConversion.TypeConversionUtils.ConvertValueIfNecessary(Type requiredType,Object newValue嵌套的CompositionAopProxy_f81c875c2f994f88bb773f5743050b67是:[Spring.Core.TypeMismatchException:不能将属性'MyProjectDao‘的类型MyProject.Dao.MyProjectDao转换为必需的类型MyProject.Dao.MyProjectDao。内部异常: Spring.Core.TypeMismatchException:不能将属性’MyProjectDao‘的类型MyProject.Dao.MyProjectDao转换为必需的类型MyProject.Dao.MyProjectDao。在Spring.Core.TypeConversion.TypeConversionUtils.ConvertValueIfNecessary(Type requiredType,Object newValue,String propertyName)在f:\bamboo-home\xml-data\build-dir\SPRNET-RELEASE-JOB1\src\Spring\Spring.Core\Core\TypeConversion\TypeConversionUtils.cs:MyProject 211中。]-> Spring.Objects.PropertyAccessExceptionsException: PropertyAccessExceptionsException (1错误);嵌套的CompositionAopProxy_f81c875c2f994f88bb773f5743050b67是:[Spring.Core.TypeMismatchException:不能将属性'MyProjectDao‘的类型MyProject.Dao.MyProjectDao转换为必需的类型MyProject.Dao.MyProjectDao。内部异常: Spring.Core.TypeMismatchException:不能将属性’MyProjectDao‘的类型MyProject.Dao.MyProjectDao转换为必需的类型MyProject.Dao.MyProjectDao。在Spring.Core.TypeConversion.TypeConversionUtils.ConvertValueIfNecessary(Type requiredType,Object newValue,String propertyName)在f:\bamboo-home\xml-data\build-dir\SPRNET-RELEASE-JOB1\src\Spring\Spring.Core\Core\TypeConversion\TypeConversionUtils.cs:MyProject 211中.]。
MyProjectDao类如下所示:
namespace MyProject.Dao
{
[DataAccessObject]
[Transaction(TransactionPropagation.Mandatory)]
public class MyProjectDao : IMyProjectDao
{
public ISessionFactory SessionFactory { private get; set; }
// ... Methods ...
}
}IMyProjectDao接口:
namespace MyProject.Dao
{
public interface IMyProjectDao
{
// ... Methods ...
}
}这是我SpringContext.xml的一部分
<!-- ######################## -->
<!-- DAO -->
<!-- ######################## -->
<object id="MyProjectDao" type="MyProject.Dao.MyProjectDao, MyProject">
<property name="SessionFactory" ref="SessionFactory" />
</object>
<!-- ######################## -->
<!-- Service -->
<!-- ######################## -->
<object id="MyProjectService" type="MyProject.Service.MyProjectService, MyProject">
<property name="MyProjectDao" ref="MyProjectDao" />
<property name="PersistenceService" ref="PersistenceService" />
<property name="DeletedObjectCache" ref="DeletedObjectCache" />
</object>发布于 2013-05-24 22:03:49
您是为IMyProjectDao属性在MyProjectService中使用接口' MyProjectDao‘,还是使用类’MyProjectDao‘。
如果使用该类,请将其更改为接口。
将MyProjectService类中的属性更改为:
public MyProjectDao MyProjectDao { get; set; }至
public IMyProjectDao MyProjectDao { get; set; }https://stackoverflow.com/questions/16711223
复制相似问题