i have following code:
cancellationpolicyservice
using myapp.model.models; using repository.pattern.repositories; using service.pattern; namespace myapp.service { public interface icancellationpolicyservice : iservice<cancellationpolicy> { } public class cancellationpolicyservice : service<cancellationpolicy>, icancellationpolicyservice { public cancellationpolicyservice(irepositoryasync<cancellationpolicy> repository) : base(repository) { } } }
inside unityconfig.cs:
.registertype<icancellationpolicyservice, cancellationpolicyservice>()
in datacacheservice:
namespace myapp.service { public class datacacheservice { private icancellationpolicyservice cancellationpolicyservice { { return _container.resolve<icancellationpolicyservice>(); } } public datacacheservice(iunitycontainer container) { _container = container; maincache = new memorycache("maincache"); getcacheditem(cachekeys.cancellationpolicies); } public object getcacheditem(cachekeys cachekeyname) { lock (_lock) { if (!maincache.contains(cachekeyname.tostring())) { switch (cachekeyname) { case cachekeys.cancellationpolicies: var cancellationpolicies = cancellationpolicyservice.queryable().tolist(); updatecache(cachekeys.cancellationpolicies, cancellationpolicies); break; } }; return maincache[cachekeyname.tostring()] object; } } } }
and when call datacacheservice error saying following:
invalidoperationexception - current type, repository.pattern.repositories.irepositoryasync`1[myapp.model.models.cancellationpolicy], interface , cannot constructed. missing type mapping?
do have idea, why is? thankful kind of hint.
it sounds haven't registered irepositoryasync<cancellationpolicy>
. add registration unity registration well.
assuming implementation of irepositoryasync<cancellationpolicy>
cancellationpolicyrepository
:
.registertype<irepositoryasync<cancellationpolicy>, cancellationpolicyrepository>()
or someting if have generic repository.
.registertype<irepositoryasync<cancellationpolicy>, mygenericrepository<cancellationpolicyrepository>>()