小编eXa*_*ier的帖子

将VmWare虚拟磁盘转换为HyperV时出错

我从客户端收到VmWare映像用于某些测试目的.我需要将其转换为Hyper-V.我按照http://www.askme4tech.com/how-convert-vmware-virtual-machine-hyper-v中的步骤进行操作.我安装了Microsoft Virtual Machine Converter并开始在PowerShell中转换虚拟磁盘.但是我变得很恐怖:

C:\Windows\system32> ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "c:\temp\disk2.vmdk" -DestinationLiteralPath "c:\data\HyperV\PH\" -VhdType DynamicHardDisk -VhdFormat Vhdx

ConvertTo-MvmcVirtualHardDisk : The entry 1 is not a supported disk database entry for the descriptor.
At line:1 char:1
+ ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "c:\temp\disk2.vmdk"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (Microsoft.Accel...nversionService:DriveConversionService) [ConvertTo-MvmcVirtualHardDisk], VmdkDescriptorParseException
    + FullyQualifiedErrorId : DiskConversion,Microsoft.Accelerators.Mvmc.Cmdlet.Commands.ConvertToMvmcVirtualHardDiskCommand

ConvertTo-MvmcVirtualHardDisk : One or more errors occurred.
At line:1 char:1
+ ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "c:\temp\disk2.vmdk"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (Microsoft.Accel...nversionService:DriveConversionService) [ConvertTo-MvmcVirtualHardDisk], AggregateException
    + FullyQualifiedErrorId : DiskConversion,Microsoft.Accelerators.Mvmc.Cmdlet.Commands.ConvertToMvmcVirtualHardDiskCommand
Run Code Online (Sandbox Code Playgroud)

vmware hyper-v virtual-disk

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

SignalR hub方法参数序列化

我需要SignalR开发人员的一些指导,这是调整HUB方法参数序列化的最佳方法.

我开始将我的项目从WCF轮询双工(Silverlight 5 - ASP.NET 4.5)迁移到SignalR(1.1.2).消息(数据契约)是基于接口的多态的.(与IMessage,MessageA:IMessage等一样 - 实际上存在由类实现的接口的层次结构,但它对于该问题并没有多大意义).(我知道多态对象不适合客户端,但客户端会将其作为JSON处理,并且只有在服务器端或客户端上才能映射到对象(如果它是.NET/Silverlight)

在集线器上我定义了这样的方法:

public void SendMessage(IMessage data) { .. }
Run Code Online (Sandbox Code Playgroud)

我创建了自定义JsonConverters并验证了可以使用Json.NET对消息进行序列化/反序列化.然后我用适当的设置替换了DependencyResolver中的JsonNetSerializer.同样在Silverlight客户端.到现在为止还挺好.

但是当我将消息从客户端发送到服务器(消息被正确地序列化为JSON - 在Fiddler中验证)时,服务器返回错误,该参数无法反序列化.在调试器的帮助下,我在SignalR中发现了一个错误(负责反序列化的JRawValue类在内部创建了自己的JsonSerializer实例,忽略了提供的一个).通过替换看起来很容易解决

var settings = new JsonSerializerSettings
{
    MaxDepth = 20
};
var serializer = JsonSerializer.Create(settings);
return serializer.Deserialize(jsonReader, type);
Run Code Online (Sandbox Code Playgroud)

var serializer = GlobalHost.DependencyResolver.Resolve<IJsonSerializer>();
return serializer.Parse(jsonReader, type);
Run Code Online (Sandbox Code Playgroud)

但我也发现在未来版本的SignalR中将删除IJsonSerializer接口.基本上,我需要从HUB方法获取原始JSON(或字节流),以便我可以自己反序列化它,或者通过指定转换器等来调整序列化器的可能性.

现在我最终用JObject参数类型定义了方法:

public void SendMessage(JObject data)
Run Code Online (Sandbox Code Playgroud)

然后使用手动反序列化数据

JObject.ToObject<IMessage>(JsonSerializer)
Run Code Online (Sandbox Code Playgroud)

方法.但我更喜欢自定义序列化程序并在hub方法上使用类型/接口.关于下一个SignalR设计的"正确方法"是什么?

我还发现有可能从我的代码发送回客户端原始JSON,即使SignalR再次序列化对象.我怎么能实现这个目标?

c# signalr signalr-hub

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

如何将plotly.js导入TypeScript?

我正在尝试导入plotly.jsTypeScript.使用Plotly.js安装npm.在我使用的TypeScript文件中

import 'plotly.js';
Run Code Online (Sandbox Code Playgroud)

没关系但我在代码上遇到错误Plotly.<member>:

error TS2304: Cannot find name 'Plotly'
Run Code Online (Sandbox Code Playgroud)

当我尝试

import Plotly = require('plotly.js');
Run Code Online (Sandbox Code Playgroud)

我越来越

error TS2307: Cannot find module 'plotly.js'.
Run Code Online (Sandbox Code Playgroud)

typescript plotly

10
推荐指数
4
解决办法
9302
查看次数

在TypeScript中使"检测到无法访问的代码"编译警告而不是错误?

在Typescript中,当存在无法访问的代码时,编译器默认生成错误:

error TS7027: Unreachable code detected.
Run Code Online (Sandbox Code Playgroud)

我可以通过使用编译器选项allowUnreachableCode来避免它,true但我可以以某种方式更改它以警告?

我仍然想知道无法访问的代码.在开发和调试期间,我有时会使用if (false)临时删除某些功能,这比注释代码更好,特别是当代码本身包含注释时.

在C#中,无法访问的代码会生成警告(我可以通过其他选项将其视为错误),这在我看来更好的方式来处理它.

typescript

9
推荐指数
2
解决办法
4446
查看次数

在Visual Studio中的"测试会话"窗口(Resharper)中"成功:测试未运行"

我在Visual Studio 2015中使用Resharper来运行测试.然而,我对状态感到困惑Test not run- 他们在成功和失败都存在.如果我单独运行其中一个这样的测试,状态临时更改为Pending: Test not run然后返回Success: Test not run.我无法找到测试未运行的任何信息.此外,我不明白为什么状态是成功(或失败),如果没有运行测试 - 它怎么知道?

我应该如何解释状态,以及如何使其运行所有测试?

(使用VS 2015 Enterprise Update 1,Resharper Ultimate 10.0.2,这两款都是最新的,测试框架是MsTest)

在此输入图像描述

resharper unit-testing visual-studio-2015

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

VSCode - 灰色未使用的导入

是否可以配置 VSCode 以将未使用的导入显示为灰色?我有 VSCode 1.21.0,使用 Typescript 2.7.2

我找到并尝试了几种设置,但没有一个对我有用。基于此链接,自 1.19.0 版以来应该是可能的

我尝试按照此处所述设置 tsconfig,但唯一的影响是编译过程中出现大量错误。

这似乎是基本要求,我什至会将其视为默认设置。在其他编辑器(例如 WebStorm)中绝对可以。我喜欢 VSCode,但我真的很想念这个功能。

visual-studio-code vscode-settings

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

在Json.NET中将Dictionary <,>序列化为数组

如何使Json.NET序列化程序将IDictionary<,>实例序列化为具有键/值属性的对象数组?默认情况下,它将Key的值序列化为JSON对象的属性名称.

基本上我需要这样的东西:

[{"key":"some key","value":1},{"key":"another key","value":5}]
Run Code Online (Sandbox Code Playgroud)

代替:

{{"some key":1},{"another key":5}}
Run Code Online (Sandbox Code Playgroud)

我尝试添加KeyValuePairConverter到序列化程序设置但它没有任何效果.(我发现这个转换器被忽略的类型IDictionary<>,但因为它们是从其他图书馆接收,所以从改变我不能轻易改变我的对象的类型IDictionary<>,以ICollection<KeyValuePair<>>不选择我.)

json.net

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

带有:: ng-deep的角度组件样式中的@import样式

使用Angular 5,带有scss的angular-cli。

我正在创建使用第三方组件(angular-tree-component)的角度组件。我需要为树导入样式。由于在angular中使用样式隔离(使用默认的仿真视图封装),因此,实现它的唯一方法是使用::ng-deep,如下所示:

:host ::ng-deep {
    @import '~angular-tree-component/dist/angular-tree-component.css';
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用-好像在中@import被忽略了:host ::ng-deep。我通过直接在方括号内复制css文件的内容来解决该问题,但是它的效果不是最佳,就好像参考包已升级一样,那么我将不得不用新样式手动替换内容。

我只能想到的其他解决方法是将视图封装更改为,None但由于它使样式成为全局样式,因此看起来甚至更糟。

有没有更好的选择?

angular-cli angular

7
推荐指数
2
解决办法
1600
查看次数

我应该如何使用 DataflowBlockOptions.CancellationToken?

我该如何使用DataflowBlockOptions.CancellationToken

BufferBlock如果我创建这样的实例:

var queue = new BufferBlock<int>(new DataflowBlockOptions { BoundedCapacity = 5, CancellationToken = _cts.Token });

那么使用使用的消费者/生产者方法queue,我如何使用它的 CancellationToken 来处理取消?

例如,在生产者方法中,如何检查取消令牌 - 我没有找到任何属性来访问令牌。

编辑:生产/消费方法示例:

private static async Task Produce(BufferBlock<int> queue, IEnumerable<int> values)
{
    foreach (var value in values)
    {
        await queue.SendAsync(value);
    }

    queue.Complete();
}

private static async Task<IEnumerable<int>> Consume(BufferBlock<int> queue)
{
    var ret = new List<int>();
    while (await queue.OutputAvailableAsync())
    {
        ret.Add(await queue.ReceiveAsync());
    }

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

调用它的代码:

var queue = new BufferBlock<int>(new DataflowBlockOptions { BoundedCapacity = …
Run Code Online (Sandbox Code Playgroud)

c# tpl-dataflow

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

ServiceStack中服务实例的生命周期?

我创建了源自的服务

ServiceStack.ServiceInterface.Service
Run Code Online (Sandbox Code Playgroud)

实施一些要求.这个服务实例的生命周期是多少 - 例如,每次调用是创建了一个新实例还是缓存了实例?

servicestack

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