小编Gav*_*and的帖子

有没有办法更改VS2012测试输出窗口中使用的字体?

我想在不更改其他窗口的情况下更改Visual Studio 2012(SP3)的"测试输出"窗口(见下图)中使用的字体.我知道您可以通过转到工具 - >选项 - >环境 - >字体和颜色并更改环境字体来更改字体,但这会更改所有窗口,菜单,对话框等...

有没有办法只更改"测试输出"窗口中使用的字体?

VS2012测试输出窗口

谢谢,

fonts visual-studio-2012

18
推荐指数
2
解决办法
2739
查看次数

如何在Xamarin.Forms页面中从XAML传递Button作为CommandParameter?

我想将Xamarin.Forms.Button它自己Command作为CommandParameter我的ViewModel 传递给它.我知道如何从背后的代码实现这一点,例如......

XAML (由于简洁而遗漏了大多数属性)

<Button x:Name="myButton"
    Text="My Button"
    Command="{Binding ButtonClickCommand}"/>
Run Code Online (Sandbox Code Playgroud)

XAML.cs

public partial class MyTestPage
{
    public MyTestPage()
    {
        InitializeComponent();

        myButton.CommandParameter = myButton;
    }
}
Run Code Online (Sandbox Code Playgroud)

视图模型

public class MyViewModel : ViewModelBase
{
    public MyViewModel()
    {
        ButtonClickCommand = new Command(
            (parameter) =>
            {
                var view = parameter as Xamarin.Forms.Button;
                if (view != null)
                {
                    // Do Stuff
                }
            });
    }

    public ICommand ButtonClickCommand { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

......但是可以CommandParameter在XAML中声明它吗?或者换句话说,将参数设置为按钮本身的绑定语法是什么?

<Button x:Name="myButton"
        Text="My …
Run Code Online (Sandbox Code Playgroud)

c# xaml commandparameter xamarin.forms

13
推荐指数
3
解决办法
2万
查看次数

可以将条件编译符号添加到csproj.user文件吗?

我正在使用C#Xamarin iOS项目在VS 2013中工作。我想添加一个条件编译符号,而不影响其他任何人,也不必进入Configuration Manager并说复制Debug(主要是这样,如果有人修改了Debug,我不会错过更改)。

我读过几篇文章,尝试将类似的内容添加到csproj.user文件中...

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DefineConstants>$(DefineConstants);__MY_NEW_SYMBOL__</DefineConstants>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

...但这只是删除了该项目的所有其他符号。

有没有一种方法可以修改csproj.user文件以实现此目的?

c# projects-and-solutions conditional-compilation csproj-user

11
推荐指数
1
解决办法
567
查看次数

如何在SeriLog Sink中获取当前的HttpContext?

我正在ILogEventSink使用构建简单接收器示例创建我自己的SeriLog 接收器,目的是记录用户声明中的一些信息.要在Core中访问HttpContext,我通常会注入一个实例,IHttpContextAccessor但示例显示在扩展方法中创建接收器的实例,例如

public class MySink : ILogEventSink
{
    private readonly IFormatProvider _formatProvider;

    public MySink(IFormatProvider formatProvider)
    {
        _formatProvider = formatProvider;
    }

    public void Emit(LogEvent logEvent)
    {
        // How to get HttpContext here?
    }
}

public static class MySinkExtensions
{
    public static LoggerConfiguration MySink(
              this LoggerSinkConfiguration loggerConfiguration,
              IFormatProvider formatProvider = null)
    {
        return loggerConfiguration.Sink(new MySink(formatProvider));
    }
}
Run Code Online (Sandbox Code Playgroud)

......然后使用水槽......

var log = new LoggerConfiguration()
    .MinimumLevel.Information()
    .WriteTo.MySink()
    .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

如何在接收器的Emit方法中访问当前的HttpContext?或者是否可以使用DI框架创建的接收器?!

我有一个运行Asp.Net Core 2框架的MVC站点,使用Serilog.AspNetCore v2.1.0对抗.Net 4.6.2运行时.

更新 - 解决方法 …

c# httpcontext serilog asp.net-core-2.0

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

你怎么能在Xamarin.iOS UITableView上只绕过2个角?

我正在使用当前版本的Xamarin.iOS和C#开发一个iPad应用程序,我正在尝试创建一个UITableView只有两个角(右上角和右下角)四舍五入的角色.我知道如何通过设置myTable.Layer.CornerRadius = 6f;但不知道如何只围绕其中的两个来使所有角落四舍五入.我环顾四周,但只能看到Objective-C的答案.这就是我目前所拥有的:

    private UIView GetModalRowHeaderView2(RectangleF bounds)
    {
        UIView view = new UIView(bounds);
        view.BackgroundColor = UIColor.Gray;

        string[] tableItems = new string[] {"Item One","Item Two","Item Three"};

        UITableView myTable = new UITableView(new RectangleF(0, 20, bounds.Width, bounds.Height - 40), UITableViewStyle.Plain);
        myTable.SeparatorInset = UIEdgeInsets.Zero;
        myTable.ScrollEnabled = false;
        myTable.Source = new TableSource(tableItems);

        // Rounds all corners
        myTable.Layer.CornerRadius = 6f;

        view.Add(myTable);

        return view;
    }
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能改变这只到圆角的两个角落?

谢谢,

c# uitableview xamarin.ios ios xamarin

5
推荐指数
2
解决办法
7568
查看次数

有没有办法撤销其他用户的访问令牌并在Identity Server 4中结束其会话?

是否有推荐的方法来撤销Identity Server 4中其他用户的访问权限?我正在查看的用例是管理员撤销当前登录用户的系统访问权限.

我已经阅读了Revocation Endpoint的文档,可以看到用户如何使用它来撤销自己的访问权限.但是,如果管理员不知道特定用户的访问令牌是什么,怎么办?

对于End Session Endpoint我也是如此,管理员将如何知道他们的ID令牌?

到目前为止我所尝试的是实现IProfileService并检查用户的帐户在该IsActiveAsync方法中是否有效.在我们的客户数据库中,我可以停用他们的帐户,这具有将他们重定向到登录页面的预期效果.但令牌和会话仍然"活着".这是结束会话和撤销访问令牌的好地方吗?

或者是将用户令牌持久化到数据库中的选项?

更新

基于从@Mashton回答下面我发现如何在Identity Server文档实现持久性的例子在这里.

创建此处描述的数据迁移将[dbo].[PersistedGrants]Key列中保留令牌.起初我很困惑,因为他们看起来不像我的参考访问令牌,但经过一点挖掘后我发现它们被存储为SHA-256哈希.查看Identity Server的GitHub中的DefaultGrantStore实现,Hashed Key计算如下...

    const string KeySeparator = ":";
    protected string GetHashedKey(string value)
    {
        return (value + KeySeparator + _grantType).Sha256();
    }
Run Code Online (Sandbox Code Playgroud)

... value这是令牌,而且_grantType是以下之一......

    public static class PersistedGrantTypes
    {
        public const string AuthorizationCode = "authorization_code";
        public const string ReferenceToken = "reference_token";
        public const string RefreshToken = "refresh_token";
        public …
Run Code Online (Sandbox Code Playgroud)

access-token openid-connect identityserver4

5
推荐指数
1
解决办法
1826
查看次数

是否可以修改或模拟 Jasmine 单元测试中 Typescript 类使用的 Inversify 容器?

我有一个 Typescript 类,它使用 InversifyJS 和Inversify Inject Decorators将服务注入私有属性。从功能上讲,这很好,但我在弄清楚如何对其进行单元测试时遇到了问题。我在下面创建了我的问题的简化版本。

在 Jasmine 单元测试中,如何用 替换注入RealDataServiceFakeDataService?如果该属性不是私有的,我可以创建该组件并分配一个假服务,但我想知道这是否可以通过使用 IOC 容器来实现。

我最初在 InversifyJS 食谱页面中遵循了这个示例,但很快意识到他们创建的容器没有在任何被测试的类中使用。另外,我在InversifyJS文档中看到的大多数代码示例都没有介绍如何对其进行单元测试。

这是问题的简化版本:

myComponent.ts

import { lazyInject, Types } from "./ioc";
import { IDataService } from "./dataService";

export default class MyComponent {

    @lazyInject(Types.IDataService)
    private myDataService!: IDataService;

    getSomething(): string {
        return this.myDataService.get();
    }
}
Run Code Online (Sandbox Code Playgroud)

数据服务.ts

import { injectable } from "inversify";

export interface IDataService {
    get(): string;
}

@injectable()
export class RealDataService implements IDataService {
    get(): string …
Run Code Online (Sandbox Code Playgroud)

unit-testing jasmine typescript inversifyjs

5
推荐指数
1
解决办法
1万
查看次数

在 Asp.Net Core Web API 中使用 MassTransit 消息时如何对用户进行身份验证?

我有几个 Asp.Net Core Web API,它们使用 Bearer 身份验证和IdentityServer4.AccessTokenValidation中间件来检查令牌、对用户进行身份验证并创建声明。这适用于 HTTP 请求。

我正在将这些 API 配置为使用 RabbitMQ 作为传输的 MassTransit 端点(用于发布和使用消息)。我按照此处的说明将 MassTransit 添加到 API 并设置消息使用者。典型的工作流程类似于:

对 API 的 HTTP 请求 > 在 MassTransit 上发布消息 > RabbitMQ > 在另一个 API 中使用的消息

我正在努力理解的是如何ClaimsPrincipal在从总线上消费消息时创建一个,以便我知道代表哪个用户执行操作?如果不是 HTTP 请求,则不会调用 AuthenticationHandler。

到目前为止我尝试过的:

我想我会通过在消息头中传递一个令牌(和/或个人声明值)来解决这个问题。发布部分似乎很容易,因为 MassTransit允许在使用MassTransit.PublishContextExecuteExtensions.Publish. 这允许我将带有标识用户的信息的消息发送到传输上,并且可以通过手动查看标题在消费者中查看此信息,例如

public class SomeEventConsumer : IConsumer<SomeEventData>
{
    public async Task Consume(ConsumeContext<SomeEventData> context)
    {
        var token = context.Headers["token"];
    }
} 
Run Code Online (Sandbox Code Playgroud)

此时,我可以获取令牌并手动调用 Identity Server 中的 Introspection 端点,但随后我需要:

  1. 每次在每个消费者身上都这样做,然后......
  2. ...手动将这些信息传递给逻辑类等,而不是使用IHttpContextAccessor.HttpContext.User.Claims …

c# authentication masstransit asp.net-core-webapi

5
推荐指数
1
解决办法
1123
查看次数

JSON.stringify在IE10中不起作用

我正在尝试解析一些表单数据以生成要在ajax请求中发送的JSON数据.以下HTML是我的代码的过度简化版本.我正在使用APS.Net MVC4,我的渲染视图生成以下HTML:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <link href="/Content/site.css" rel="stylesheet"/>
    <script src="/Scripts/modernizr-2.6.2.js"></script>
</head>
<body>

<div class="test-class" data-my-attribute="1"></div>
<div class="test-class" data-my-attribute="2"></div>
<div class="test-class" data-my-attribute="3"></div>

<script src="/Scripts/jquery-1.8.2.js"></script>

<script type="text/javascript">
    $(function () {
        jsonObj = [];
        $(".test-class").each(function () {
            var myAttribute = $(this).data('my-attribute');
            item = {}
            item["MyAttribute"] = myAttribute;
            jsonObj.push(item);
        });
        var data = { SomeOtherData: 1234, MyAttribs: jsonObj };
        console.log(JSON.stringify(data));
    });
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在Chrome中,控制台中的输出按预期输出...

{
    "SomeOtherData": 1234,
    "MyAttribs": [{
        "MyAttribute": 1
    }, {
        "MyAttribute": …
Run Code Online (Sandbox Code Playgroud)

javascript jquery internet-explorer json cross-browser

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

有没有办法在月视图中向Kendo Scheduler添加"X more events"样式消息?

我正在使用带有Kendo UI版本的ASP.NET MVC:"2014.2.716".

有没有办法将Kendo Scheduler控件中的默认"..."更改为自定义消息,并说"13个更多事件"?

在此输入图像描述

这是我到目前为止所尝试的.我知道我可以捕获数据绑定事件......

@(Html.Kendo().Scheduler<MyViewModel>()
        .Name("myScheduler")
        .Selectable(true)
        .EventTemplateId("event-template")
        .Events(e =>
        {
            e.DataBound("calDataBound");
        })
        .Views(views =>
        {
            views.DayView();
            views.WeekView();
            views.MonthView();
            views.AgendaView();
        })
       @* Other markup removed for brevity ... *@
Run Code Online (Sandbox Code Playgroud)

...然后在javascript中使用jQuery来获取这些元素......

function calDataBound(e) {
        $(".k-more-events span").each(function (index, element ) 
        {

        });
}
Run Code Online (Sandbox Code Playgroud)

...但我不知道的是我如何得到这个单元所代表的当天的事件数量?!

javascript asp.net-mvc jquery kendo-scheduler

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