我想在不更改其他窗口的情况下更改Visual Studio 2012(SP3)的"测试输出"窗口(见下图)中使用的字体.我知道您可以通过转到工具 - >选项 - >环境 - >字体和颜色并更改环境字体来更改字体,但这会更改所有窗口,菜单,对话框等...
有没有办法只更改"测试输出"窗口中使用的字体?
谢谢,
我想将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#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
我正在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运行时.
更新 - 解决方法 …
我正在使用当前版本的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)
任何想法我怎么能改变这只到圆角的两个角落?
谢谢,
是否有推荐的方法来撤销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) 我有一个 Typescript 类,它使用 InversifyJS 和Inversify Inject Decorators将服务注入私有属性。从功能上讲,这很好,但我在弄清楚如何对其进行单元测试时遇到了问题。我在下面创建了我的问题的简化版本。
在 Jasmine 单元测试中,如何用 替换注入RealDataService
的FakeDataService
?如果该属性不是私有的,我可以创建该组件并分配一个假服务,但我想知道这是否可以通过使用 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) 我有几个 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 端点,但随后我需要:
IHttpContextAccessor.HttpContext.User.Claims …
我正在尝试解析一些表单数据以生成要在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) 我正在使用带有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)
...但我不知道的是我如何得到这个单元所代表的当天的事件数量?!
c# ×5
javascript ×2
jquery ×2
access-token ×1
asp.net-mvc ×1
csproj-user ×1
fonts ×1
httpcontext ×1
inversifyjs ×1
ios ×1
jasmine ×1
json ×1
masstransit ×1
serilog ×1
typescript ×1
uitableview ×1
unit-testing ×1
xamarin ×1
xamarin.ios ×1
xaml ×1