我想在本地服务器和我正在部署的实时服务器之间使用bitbucket作为中间件.
我正在使用Windows Server 2012和iis 8.我正在开发一个ASP.NET MVC 5项目.
基本上,我想重新创建azure用于持续集成的相同工作流程:
在本地处理应用程序,然后将更改提交到bitbucket中的master(不一定)分支,然后服务器将与master分支同步以反映更改.
我假设起点是在本地服务器和实时服务器上都有bitbucket存储库的副本,但我正在努力将本地服务器和实时服务器链接到bitbucket.
我的应用程序中有三种类型的用户,比方说Type1, Type2 and Type3。然后我想为每种类型创建一个服务实现,假设我有一个获取照片的服务,我将拥有三个服务:Type1PhotosService, Type2PhotosService and Type3PhotosService,每个服务都实现IPhotosService.
在 web api 中,我会注入IPhotosService:
IPhotosService _service;
public PhotosController(IPhotosService service){
_service = service;
}
Run Code Online (Sandbox Code Playgroud)
Web api 使用带有声明的令牌身份验证。所以我想要实现的是,对于每个用户,根据他的声明:type1 or type2 or type3,服务的正确实现将被自动注入,而不是在startup文件中注入单个服务。我想避免的是,有一个服务,有一堆switchandif语句,根据用户类型和他拥有的角色返回正确的数据。
编辑:有些评论想知道三个实现的意义是什么,所以这里有更多细节让它更有意义。该服务是一个求职服务,该应用程序具有三个不同的配置文件:candidate, employer and administration. 这些配置文件中的每一个都需要适当的实现。因此,与其GetCandidateJobs, GetEmployerJobs and GetAdministrationJobs在同一服务中使用三种方法并打开用户类型,我更喜欢每个配置文件类型有一个实现,然后根据配置文件类型使用正确的实现。
我正在使用forEach函数循环一个简单的对象,我将对象作为上下文传递.
当我尝试使用this[key]它来访问一个对象属性但是this.key不起作用时,有人可以告诉我们它为什么会这样做吗?
var calendar = {
moveAll: false,
moveSingleDay: false,
translateRange : false
}
angular.forEach(calendar, function(val, key){
console.log(this[key]); // returns val
console.log(this.key); // returns undefined
}, calendar);
Run Code Online (Sandbox Code Playgroud) angularjs ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
bitbucket ×1
c# ×1
deployment ×1
git ×1
iis ×1
javascript ×1