我在自动生成wire_gen.go时遇到问题(我可以手动创建,但希望使用自动生成)
我的项目具有服务、存储库和解析器
存储库-〉服务-〉解析器Service
从Repository
注入,Resolver
从Service
注入
这是我的代码
资料档案库
// Icon Repository
type GormRepository struct {
db database.Database
}
func NewGormRepository(db database.Database) *GormRepository {
return &GormRepository{db: db}
}
服务
// Icon Service (I have already Implemented all of these)
type Repository interface {
FindAllIcon(*[]*model.Icon) error
FindOneIcon(int64, *model.Icon) error
CreateIcon(*model.Icon) error
UpdateIcon(int64, *model.Icon) error
DeleteIcon(int64, *model.Icon) error
}
type Service struct {
repository Repository
validatorService service.ValidatorService
}
func NewIconService(repository Repository, validatorService service.ValidatorService) Service {
return Service{
repository: repository,
validatorService: validatorService,
}
}
// Validator Service
func NewValidatorService() Service {
return Service{}
}
type Service struct{}
解析器
// Resolver
type Resolver struct {
iconService icon.Service
}
func NewResolver(iconService icon.Service) *Resolver {
return &Resolver{
iconService: iconService,
}
}
wire.go
// wire.go
func InitializeResolver(db database.Database) (*graph.Resolver, error) {
wire.Build(graph.NewResolver, icon.NewIconService, repository.NewGormRepository, service.NewValidatorService)
return &graph.Resolver{}, nil
}
wire_gen.go(手动创建,未收到任何错误)
func InitializeResolver(db database.Database) (*graph.Resolver, error) {
gormRepository := repository.NewGormRepository(db)
validatorService := service.NewValidatorService()
iconService := icon.NewIconService(gormRepository, validatorService)
resolver := graph.NewResolver(iconService)
return resolver, nil
}
这是我遇到的错误
wire: C:\Computer Programing\Samithiwat\samithiwat-app-backend\src\wire.go:43:1: inject InitializeResolver: no provider found for github.com/samithiwat/samithiwat-backend/src/service/i
con.Repository
needed by github.com/samithiwat/samithiwat-backend/src/service/icon.Service in provider "NewIconService" (C:\Computer Programing\Samithiwat\samithiwat-app-backend\src\service\i
con\icon-decoration.service.go:24:6)
你们有什么想法来修复这个错误,提前感谢你们的帮助
1条答案
按热度按时间toiithl61#
您需要将界面系结至实作界面的结构。
(PS:我没有在我的机器上测试过,可能包含语法/编译错误)