我正在使用json.net(Newtonsoft的JsonSerializer).我需要自定义序列化以满足以下要求:
例如:
var product = new Product();
procuct.Name = "Product1";
product.Items = new Dictionary<string, Item>();
product.Items.Add("Item1", new Item { Description="Lorem Ipsum" });
Run Code Online (Sandbox Code Playgroud)
必须序列化为:
{
name: "Product1",
items : {
"Item1": {
description : "Lorem Ipsum"
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意属性Name序列化为"name",但键Item1序列化为"Item1";
我试图创建CustomJsonWriter来序列化属性名称,但它也改变了dicionary键.
public class CustomJsonWriter : JsonTextWriter
{
public CustomJsonWriter(TextWriter writer) : base(writer)
{
}
public override void WritePropertyName(string name, bool escape)
{
if (name != "$type")
{
name = name.ToCamelCase();
}
base.WritePropertyName(name, escape);
}
}
Run Code Online (Sandbox Code Playgroud) 我知道新的UWP应用程序模型与"传统"Win32应用程序相比有一些限制.
我们以Visual Studio Code作为桌面应用程序的示例.
如果它是UWP应用程序,Visual Studio Code的哪些功能缺失或必须与用户不同?
编辑:我已经完成了微软认证考试"使用C#开发Windows应用商店应用的基本知识"和考试70-355:通用Windows平台 - 应用数据,服务和编码模式.所以我对win rt api有所了解.
请不要打扰"uwp app在沙盒中运行"等答案.它们毫无用处,因为它们没有说明用户视角的限制.我故意把现实生活中的例子,所以我们可以具体化.
限制可能是,您的应用程序无法支持第三方插件,如自定义语法高亮显示或重构扩展(这是Windows商店应用程序的限制,不确定它是否仍然有效).
另一个限制可能是,你的应用程序无法截取屏幕截图,因为uwp中没有api(实际上不确定它是真的)
我使用ES6模块构建了typescript应用程序.
如何在不破坏引用重命名文件的ES6导入的情况下重命名代表模块的ts或js文件?
例如:重命名MyModule.ts为RenamedModule.ts- >更改import * from './MyModule'为import * from './RenamedModule'所有文件;
是否有VSCode扩展或打字稿服务在重命名文件时重命名所有ES6导入中的模块路径?
编辑:
我越来越
无法为'.NETStandard,Version = v2.0'解析'NETStandard.Library(> = 1.6.1)'.
在我将aspnetcore应用程序升级到netcoreapp2.0我的库并使用之后,使用Hosted2017构建代理构建VSTS netstandard2.0.
在当地工作正常.
我编辑了我的构建定义以使用.net核心构建任务v2.* preview:
这是构建日志:
Current agent version: '2.120.2'
Download all required tasks.
Downloading task: DotNetCoreCLI
Starting: Get Sources
Syncing repository: Liero/vyvojari-sk (GitHub)
...details ommited
HEAD is now at e448a25... Upgraded to .NET Core 2.0
Finishing: Get Sources
Starting: Restore
==============================================================================
Task : .NET Core
Description : Build, test, package, or publish a dotnet application, or run a custom dotnet command. For package commands, supports NuGet.org and authenticated …Run Code Online (Sandbox Code Playgroud) .net-core azure-devops azure-pipelines .net-core-2.0 .net-standard-2.0
我的asp.net core 2.x app有典型的日志记录要求:
现在我看到至少有三种不同的API来配置日志记录:
WebHostBuilder.ConfigureLogging()在Program.cs中
public static void Main(string[] args)
{
var webHost = new WebHostBuilder()
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddConsole();
logging.AddDebug();
logging.AddAzureWebAppDiagnostics();
})
.UseStartup<Startup>()
.Build();
webHost.Run();
}
Run Code Online (Sandbox Code Playgroud)注入ILoggerFactoryStartup.Configure方法:
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
{
loggerFactory.AddConsole();
loggerFactory.AddAzureWebAppDiagnostics();
loggerFactory.AddApplicationInsights(app.ApplicationServices,
(category, level) => level >= (category == "Microsoft" ? LogLevel.Error : LogLevel.Information));
}
Run Code Online (Sandbox Code Playgroud)在Startup.ConfigureServices中:
public void ConfigureServices(IServiceCollection services)
{
services.AddLogging(logging =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddConsole();
logging.AddDebug();
logging.AddAzureWebAppDiagnostics();
}
}
Run Code Online (Sandbox Code Playgroud)那些有什么区别?什么时候用哪个?
roslyn或visual studio 2015是否提供API来重写IL或"类似的东西"?让我解释...
我在msdn杂志的文章" 使用Roslyn编写实时代码分析器"中读到,可以编写通过nuget包分发的自定义代码分析器,而无需Visual Studio插件.
我真的很好奇,如果roslyn编译器和visual studio 2015允许以这种方式实现Code Cotracts,那么正确构建它就不需要插件.
此外,我希望通过属性上的[NotifyPropertyChanged]数据注释等方面获得我的代码的生产力和可读性,但同样,如果它不能在使用visual studio 2015的每台机器上正确构建,那么这不是一个好主意.
我有MyProj.Backend.Contracts.csproj以下可移植类库
project.json:
{
"supports": {
"net46.app": {},
"uwp.10.0.app": {},
"dnxcore50.app": {}
},
"dependencies": {
"Microsoft.NETCore": "5.0.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.0",
"NuSpec.ReferenceGenerator": "1.4.2"
},
"frameworks": {
"dotnet": {
"imports": "portable-net452+win81"
}
}
}
Run Code Online (Sandbox Code Playgroud)
和nuspec:
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>MyProj.Backend.Contracts</id>
<version>1.0.0</version>
<dependencies>
<group targetFramework="dotnet">
<dependency id="System.Resources.ResourceManager" version="4.0.0" />
<dependency id="System.Runtime" version="4.0.20" />
</group>
</metadata>
</package>
Run Code Online (Sandbox Code Playgroud)
请注意,我已将NuSpec.ReferenceGenerator添加到我的项目中,将''添加到我的项目json中.
但是,我仍然无法打包我的PCL库:
nuget pack MyProj.Backend.Contracts.csproj
Run Code Online (Sandbox Code Playgroud)
Attempting to build package from 'MyProj.Backend.Contracts.csproj'.
Packing files from 'C:\Projects\MyProj\Backend\Contracts\Dev\bin\Contracts'.
Using ''MyProj.Backend.Contracts.csproj.nuspec' for metadata.
Value cannot be null or an empty string. …Run Code Online (Sandbox Code Playgroud) 当我需要生成一些C#代码,例如来自xsd schema的DTO类或excel表时,我使用了一些roslyn API.
打字稿是否有类似的东西?
<Grid>
<Image x:Name="BackgroundImage" Source="/Assets/background.png" />
<Rectangle x:Name="ClippingRect" Margin="50" Fill="#30f0" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
如何应用alpha蒙版或剪贴蒙版,以便除矩形之外的所有内容都会模糊?
我通常做:GraphicsEffect-> EffectFactory-> Brush-> Set to SpriteVisual
var graphicsEffect = new BlendEffect
{
Mode = BlendEffectMode.Multiply,
Background = new ColorSourceEffect
{
Name = "Tint",
Color = Windows.UI.Color.FromArgb(50,0,255,0),
},
Foreground = new GaussianBlurEffect()
{
Name = "Blur",
Source = new CompositionEffectSourceParameter("Backdrop"),
BlurAmount = (float)20,
BorderMode = EffectBorderMode.Hard,
}
};
var blurEffectFactory = _compositor.CreateEffectFactory(graphicsEffect,
new[] { "Blur.BlurAmount", "Tint.Color" });
var _brush = blurEffectFactory.CreateBrush();
_brush.SetSourceParameter("Backdrop", _compositor.CreateBackdropBrush());
var blurSprite = _compositor.CreateSpriteVisual();
blurSprite.Size = …Run Code Online (Sandbox Code Playgroud) c# ×4
.net-core ×2
azure-devops ×2
roslyn ×2
typescript ×2
.net-4.6 ×1
asp.net-core ×1
ecmascript-6 ×1
git ×1
json.net ×1
logging ×1
nuget ×1
nuspec ×1
pull-request ×1
t4 ×1
uwp ×1
win2d ×1
windows-10 ×1