我的Web API项目,我试图将DTO调用中的id映射到Object。但我在使用AutoFac设置依赖性方面遇到了问题。
以下是我正在使用的课程。
public abstract class DomainObject<IdT> : IDomainObject<IdT>
{
public virtual IdT Id { get; set; }
}
public class Course : DomainObject<long>
{
public string CourseName { get; set; }
public Teacher Teacher { get; set; }
}
public class Teacher : DomainObject<long>
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
我想将CourseDTO映射到课程,TeacherID必须映射到教师对象
public class CourseDTO
{
public long Id{ get; set; }
public string CourseName { get; set; }
public long TeacherID { get; set; }
}
以下是实体转换器。
public class EntityConverter<T,IdT> : ITypeConverter<IdT, T>
{
private readonly IGenericRepository<T, IdT> _repository;
public EntityConverter(IGenericRepository<T, IdT> repository)
{
_repository = repository;
}
public T Convert(ResolutionContext context)
{
return _repository.GetById((IdT)context.SourceValue);
}
}
如何使用AutoFac定义映射并注入依赖项。
答案 0 :(得分:0)
从您的问题中不清楚您遇到了什么问题。如果您只是想在DTO中映射TeacherId,那么根本没有工作要做:
Intent i=new Intent(getContext(),Main2Activity.class);
getContext().startActivity(i);
TeacherId将自动映射到Teacher.Id。
如果您想通过从存储库中查找来映射TeacherDTO,那么您可以在链接的问题中使用该方法。注册将与Windsor方法非常相似,并且设置容器以进行分辨率也几乎相同:
Mapper.CreateMap<Course, CourseDTO>();
如果您尝试做的事情比这更复杂,那么您需要发布您尝试映射的实际DTO。