我的问题是,在我正在进行的项目上进行tfs更新后,我再也无法进行任何测试了。
在更新之前它有效,但现在我每次在我的测试类'Spring.Core.TypeMismatchException
方法中运行ContextRegistry.GetContext()
方法时都会得到Init()
。
MyProjectDao上的唯一更改是其方法内的更改,并添加了属性。并且已在SpringContext.xml中添加了一项服务。
这是我得到的例外:
System.Configuration.ConfigurationErrorsException: System.Configuration.ConfigurationErrorsException:创建错误 context'chring.root':PropertyAccessExceptionsException(1个错误); 嵌套的PropertyAccessExceptions是:
[Spring.Core.TypeMismatchException:无法转换属性值 输入[CompositionAopProxy_f81c875c2f994f88bb773f5743050b67]到 属性的必需类型[MyProject.Dao.MyProjectDao] 'MyProjectDao'。,内部例外: Spring.Core.TypeMismatchException:无法转换属性值 类型[CompositionAopProxy_f81c875c2f994f88bb773f5743050b67]来 属性的必需类型[MyProject.Dao.MyProjectDao] 'MyProjectDao'。 在Spring.Core.TypeConversion.TypeConversionUtils.ConvertValueIfNecessary(Type inType,Object newValue,String propertyName)in F:\竹家\ XML数据\集结目录\ SPRNET释放 - JOB1的\ src \春\ Spring.Core \核心\ TypeConversion \ TypeConversionUtils.cs:MyProject的 211.] ---> Spring.Objects.Factory.ObjectCreationException:创建在'file中定义名称为'MyProjectService'的对象时出错 [C:\项目\ MyProject的\ MyProject.NET \测试\ MyProject.Service.Test \ BIN \调试\ SpringContext.xml] 第147行:设置属性值时出错: PropertyAccessExceptionsException(1个错误);嵌套 PropertyAccessExceptions是: [Spring.Core.TypeMismatchException:无法将类型[CompositionAopProxy_f81c875c2f994f88bb773f5743050b67]的属性值转换为 属性的必需类型[MyProject.Dao.MyProjectDao] 'MyProjectDao'。,内部异常:Spring.Core.TypeMismatchException: 无法转换类型的属性值 [CompositionAopProxy_f81c875c2f994f88bb773f5743050b67]要求 输入属性“MyProjectDao”的[MyProject.Dao.MyProjectDao]。在 Spring.Core.TypeConversion.TypeConversionUtils.ConvertValueIfNecessary(类型 inType,Object newValue,String propertyName)in F:\竹家\ XML数据\集结目录\ SPRNET释放 - JOB1的\ src \春\ Spring.Core \核心\ TypeConversion \ TypeConversionUtils.cs:MyProject的 211.] ---> Spring.Objects.PropertyAccessExceptionsException:PropertyAccessExceptionsException(1个错误);嵌套 PropertyAccessExceptions是:[Spring.Core.TypeMismatchException: 无法转换类型的属性值 [CompositionAopProxy_f81c875c2f994f88bb773f5743050b67]要求 输入属性“MyProjectDao”的[MyProject.Dao.MyProjectDao]。, 内部异常:Spring.Core.TypeMismatchException:不能 转换类型的属性值 [CompositionAopProxy_f81c875c2f994f88bb773f5743050b67]要求 输入属性“MyProjectDao”的[MyProject.Dao.MyProjectDao]。 在Spring.Core.TypeConversion.TypeConversionUtils.ConvertValueIfNecessary(Type inType,Object newValue,String propertyName)in F:\竹家\ XML数据\集结目录\ SPRNET释放 - JOB1的\ src \春\ Spring.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>
答案 0 :(得分:2)
您是在MyProjectService中使用MyProjectDao属性的“IMyProjectDao”接口,还是使用“MyProjectDao”类?
如果您使用该类将其更改为界面。
在MyProjectService类中更改您的属性:
public MyProjectDao MyProjectDao { get; set; }
要
public IMyProjectDao MyProjectDao { get; set; }