小编ali*_*ali的帖子

System.Web.Http.HttpConfiguration中的DependencyResolver与System.Web.Mvc中的DependencyResolver

我正在使用Microsoft Unity作为IoC容器的新ASP.Net Web API项目。我有些困惑,哪个是正确的。

如果我设置DependencyResolverSystem.Web.Http.HttpConfiguration。然后,我可以调用具有依赖性的API控制器,并且这些依赖性已由Unity框架解决。但是,对于像HomeControllerUnity 这样的MVC控制器,DependencyResolver在我将in 设置为in 之前无法注入任何依赖项System.Web.Mvc

API控制器依赖性已解决,但MVC控制器依赖性未解决。如果我在下面添加代码:

public class IocConfig
{
    public static void Register(HttpConfiguration config)
    {
        var container = UnityConfig.GetConfiguredContainer();
        FilterProviders.Providers.Remove(FilterProviders.Providers.OfType<FilterAttributeFilterProvider>().First());
        FilterProviders.Providers.Add(new UnityFilterAttributeFilterProvider(container));
        config.DependencyResolver = new UnityResolver(container);
        //DependencyResolver.SetResolver(new UnityDependencyResolver(container));
    }
}
Run Code Online (Sandbox Code Playgroud)

MVC控制器依赖关系已成功解决,但API控制器依赖关系未成功解决。如果我在下面添加代码:(取消注释该行

DependencyResolver.SetResolver(new UnityDependencyResolver(container));
Run Code Online (Sandbox Code Playgroud)

只是让您知道项目模板是ASP.Net Web API,而我正在使用Microsoft.Unity。

我应该同时设置DependencyResolver还是做错什么?

c# dependency-injection unity-container asp.net-web-api

7
推荐指数
1
解决办法
5721
查看次数

根据SQL Server中多个先前行的值提取行

我有一个包含这样的示例数据的表:

ID  Key   User
--  ----  -----
1   a     test
2   ab    test
3   abc   test
4   abcd  test
5   e     test1
6   ef    test1
7   efg   test1
8   efgh  test1
9   t     test1
10  ty    test1
11  tyu   test1
12  tyui  test1
Run Code Online (Sandbox Code Playgroud)

数据由用户构造的值的顺序"快照"组成.我想为每个用户实例返回最后一行,构建一个不同的最终Key值.注意大多数行Key包含整个前一行Key加上一个额外的字母?我只想要终止这样一个序列的行,并且是每个链中可能的最长值,Keys它们依次包含前一个Key值.

以上示例数据应返回以下内容:

ID  Key   User
--  ----  -----
4   abcd  test
8   efgh  test1
12  tyui  test1
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

sql t-sql

6
推荐指数
2
解决办法
1655
查看次数

角度3 Http Interceptor Retry请求的ionic 3不起作用

我正在使用带有刷新令牌的令牌身份验证的应用程序。我已经在Web应用程序的angular v1中成功实现了身份验证和刷新令牌。在使用angular v5的ionic 3应用程序中,我还实现了该过程。它通过刷新令牌成功获取了新令牌。但是问题是,它没有再次调用最后一个请求。

这是我的Http拦截器实现。

@Injectable()
export class HttpsRequestInterceptor implements HttpInterceptor {
isRefreshingToken: boolean = false;
tokenSubject: BehaviorSubject<string> = new BehaviorSubject<string>(null);

constructor(
    private injector : Injector
) {

}

addToken(req: HttpRequest<any>, token: string): HttpRequest<any> {
    return req.clone({ setHeaders: { Authorization: 'Bearer ' + token }})
}

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> {

    const authenticationService = this.injector.get(AuthenticationService);

    let user : AuthenticatedUser = authenticationService.getUser1();

    console.log("token", (user)? user.token : null);

    let dupReq: HttpRequest<any>;

    if (user …
Run Code Online (Sandbox Code Playgroud)

typescript ionic-framework angular-http-interceptors ionic3 angular

5
推荐指数
0
解决办法
769
查看次数

AWS SNS不再发送SMS

自从两天前它停止工作以来,我一直在使用Amazon SNS发送SMS。我没有任何改变。即使我尝试从控制台发送SMS,也仍然无法正常工作。

最近几天我的交货率只有35%,但是从昨天开始,它根本没有工作。

amazon-web-services amazon-sns

4
推荐指数
1
解决办法
2544
查看次数

过滤uitableview数据源时,didSelectRowAtIndexPath不起作用

我有uitableview和搜索栏与searchDisplayController,我填充tableview数据源与数据库和我的用户搜索栏进行搜索,一次uitableview数据源未过滤didSelectRowAtIndexPath工作正常,它转到detailviewcontroller,但当我使用搜索并过滤数据源然后,如果我选择一个单元格didSelectRowAtIndexPath方法不会触发.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    KardexViewController* kardexViewController = [[KardexViewController alloc] initWithStyle:UITableViewStylePlain];

    [self.navigationController pushViewController:kardexViewController animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

这是我添加uisearchbar的方式

- (void)viewDidLoad
{
    [super viewDidLoad];

    dataSource = [[NSMutableArray alloc] init];

    self.navigationItem.title = Title;

    searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];

    searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
    searchDisplayController.delegate = self;
    searchDisplayController.searchResultsDataSource = self;

    self.tableView.tableHeaderView = searchBar; 
}
Run Code Online (Sandbox Code Playgroud)

以及我如何过滤数据源

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
    NSMutableArray* result = [[NSMutableArray alloc] init];

    for (int i = 0; i < [self.allData count]; i++) {
        NSRange …
Run Code Online (Sandbox Code Playgroud)

iphone uitableview

2
推荐指数
1
解决办法
3384
查看次数

强制OData控制器将更新的实体返回给客户端

我有一个包含计算列的sql表,使用实体框架更新实体,在其update语句之后创建一个select语句查询,将计算列值返回给服务器.但是,OData控制器put和patch方法不会将更新的实体返回给客户端.它们确实返回状态代码204 No Content.因为我在html视图中显示计算列,所以我需要返回更新后的实体.是否有任何方法强制put和patch方法将更新的实体返回给客户端?再次检索实体是不合理的.

谢谢

entity-framework odata

2
推荐指数
1
解决办法
827
查看次数