小编Lie*_*ero的帖子

Newtonsoft JsonSerializer - 小写属性和字典

我正在使用json.net(Newtonsoft的JsonSerializer).我需要自定义序列化以满足以下要求:

  1. 属性名称必须以小写字母开头.
  2. 必须将字典序列化为jsonp,其中键将用于属性名称.LowerCase规则不适用于字典键.

例如:

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)

c# json.net

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

桌面应用程序中的UWP限制

我知道新的UWP应用程序模型与"传统"Win32应用程序相比有一些限制.

我们以Visual Studio Code作为桌面应用程序的示例.

如果它是UWP应用程序,Visual Studio Code的哪些功能缺失或必须与用户不同?

编辑:我已经完成了微软认证考试"使用C#开发Windows应用商店应用的基本知识"和考试70-355:通用Windows平台 - 应用数据,服务和编码模式.所以我对win rt api有所了解.

请不要打扰"uwp app在沙盒中运行"等答案.它们毫无用处,因为它们没有说明用户视角的限制.我故意把现实生活中的例子,所以我们可以具体化.

限制可能是,您的应用程序无法支持第三方插件,如自定义语法高亮显示或重构扩展(这是Windows商店应用程序的限制,不确定它是否仍然有效).

另一个限制可能是,你的应用程序无法截取屏幕截图,因为uwp中没有api(实际上不确定它是真的)

win-universal-app windows-10

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

如何在VSTS中解决pull请求中的合并冲突?

我已经创建了拉入请求,我进入了这个:

在此输入图像描述

"批准"按钮不执行任何操作,并且已禁用完成.

如何在拉取请求中解决此问题?

git merge-conflict-resolution pull-request azure-devops

40
推荐指数
3
解决办法
4万
查看次数

Visual Studio代码 - 在所有ES6导入中应用重命名文件重构

我使用ES6模块构建了typescript应用程序.

如何在不破坏引用重命名文件的ES6导入的情况下重命名代表模块的ts或js文件?

例如:重命名MyModule.tsRenamedModule.ts- >更改import * from './MyModule'import * from './RenamedModule'所有文件;

是否有VSCode扩展或打字稿服务在重命名文件时重命名所有ES6导入中的模块路径?

编辑:

在GitHub上投票支持这个vscode功能

typescript ecmascript-6 visual-studio-code

33
推荐指数
2
解决办法
7501
查看次数

VSTS构建:软件包无法恢复 - 无法为".NETStandard,Version = v2.0"解析"NETStandard.Library(> = 1.6.1)"

我越来越

无法为'.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

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

ILoggerFactory vs serviceCollection.AddLogging vs WebHostBuilder.ConfigureLogging

我的asp.net core 2.x app有典型的日志记录要求:

  • 在生产中使用应用洞察力,
  • 开发环境中的控制台和调试记录器
  • 根据类别和日志级别设置一些过滤器

现在我看到至少有三种不同的API来配置日志记录:

  1. 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)
  2. 注入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)
  3. 在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)

那些有什么区别?什么时候用哪个?

c# logging .net-core asp.net-core .net-core-logging

20
推荐指数
2
解决办法
4770
查看次数

使用Roslyn进行面向方面编程

roslyn或visual studio 2015是否提供API来重写IL或"类似的东西"?让我解释...

我在msdn杂志的文章" 使用Roslyn编写实时代码分析器"中读到,可以编写通过nuget包分发的自定义代码分析器,而无需Visual Studio插件.

我真的很好奇,如果roslyn编译器和visual studio 2015允许以这种方式实现Code Cotracts,那么正确构建它就不需要插件.

此外,我希望通过属性上的[NotifyPropertyChanged]数据注释等方面获得我的代码的生产力和可读性,但同样,如果它不能在使用visual studio 2015的每台机器上正确构建,那么这不是一个好主意.

c# visual-studio roslyn visual-studio-2017

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

来自可移植类库的Nuget:值不能为null或空字符串.参数名称:profileValue

是)我有的

我有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)

nuget nuspec portable-class-library .net-4.6

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

是否有TypeScript的代码生成API?

当我需要生成一些C#代码,例如来自xsd schema的DTO类或excel表时,我使用了一些roslyn API.

打字稿是否有类似的东西?

t4 code-generation roslyn typescript

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

如何将Mask应用于CompositionBrush

<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# win2d uwp xaml-composition

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