ContainerControlledLifetimeManager和HierarchicalLifetimeManager之间的一般区别是什么?我知道ContainerControlledLifetimeManager表示单例,即DI容器将为每个需要依赖的类型创建一个新实例.我阅读了有关理解终身经理的有用文章.我将容器创建的实例的哈希码与不同的生命周期管理器进行了比较.如果我使用ContainerControlledLifetimeManager,每个请求都有相同的实例,但是当我使用HierarchicalLifetimeManager时,我得到了不同的哈希码.正如文章中所写,每个子容器都将创建自己的实例.我不完全理解它.父母和孩子是否会有相同的实例?如果我没有孩子会怎么样?什么时候应该使用这个终身经理?请你能解释一下吗?
如何通过.testsettings文件运行单元测试vstest.console.exe?我创建了空的visual studio解决方案,创建了空单元测试项目,添加了Local.testsettings文件作为解决方案项.
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
}
}
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name="Local" id="1109524d-9809-4423-b7fa-fad429ebfd8d" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Description>These are default test settings for a local test run.</Description>
<Deployment enabled="false" />
<Execution hostProcessPlatform="MSIL">
<TestTypeSpecific>
<UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
<AssemblyResolution>
<TestDirectory useLoadContext="true" />
</AssemblyResolution>
</UnitTestRunConfig>
</TestTypeSpecific>
<AgentRule name="LocalMachineDefaultRole">
</AgentRule>
</Execution>
<Properties />
</TestSettings>
Run Code Online (Sandbox Code Playgroud)
使用以下命令运行测试时,一切正常:
>> "[path to vstest]/vstest.console.exe" [path to project]\UnitTestProject1.dll
Run Code Online (Sandbox Code Playgroud)
以下命令给出错误.
"[path to vstest]/vstest.console.exe" [path to project]\UnitTestProject1.dll /Settings:[path to settings file]\Local.testsettings
Run Code Online (Sandbox Code Playgroud)
警告:MSTest V2适配器不支持testsettings文件或ForcedLegacyMode设置为true的runsettings.[path]\UnitTestProject1.dll中没有可用的测试.确保已注册测试发现者和执行者,并且平台和框架版本设置是适当的,然后重试. …
能告诉我如何识别Xamarin Forms应用程序中的长按手势?
我用前几天 TapGestureRecognizer
TapGestureRecognizer imageTap = new TapGestureRecognizer();
imageTap.Tapped += (sender, args) => this.OnClickImage;
image.GestureRecognizers.Add(imageTap);
Run Code Online (Sandbox Code Playgroud)
但我不知道如何根据xamarin论坛的这个帖子做长按手势
它应该看起来像这样,但它不起作用.
var dumpParam = new RelayGesture((g, x) => DisplayAlert("Title", "Hello message", "Cancel"));
book.Cover.SetValue(Gestures.InterestsProperty, new GestureCollection() {
new GestureInterest
{
GestureType = GestureType.LongPress
GestureCommand = // what should I set?
GestureParameter = dumpParam
}
});
Run Code Online (Sandbox Code Playgroud)
如何设置我的自定义处理程序方法?
我想创建Hemming Matrix.我刚刚建造了Galois字段,就像乘法组一样.这就是我得到的:
MultiplicativeGroup = DeleteDuplicates[
NestList[
PolynomialMod[
PolynomialMod[(generating*#), irreducablePolynomial], 2] &, 1,
n]];
Run Code Online (Sandbox Code Playgroud)
{1,a,a ^ 2,1 + a ^ 2,1 + a + a ^ 2,1 + a,a + a ^ 2}
之后我把它转换成二进制形式,看起来像这样:
CoefficientList[MultiplicativeGroup, a]
Run Code Online (Sandbox Code Playgroud)
{{1},{0,1},{0,0,1},{1,0,1},{1,1,1},{1,1},{0,1,1}}但是我坚持把它转换成二进制矩阵形式.它必须看起来像这样:
(0 0 1 1 1 0 1
0 1 0 0 1 1 1
1 0 0 1 1 1 0)
Run Code Online (Sandbox Code Playgroud)
但我实际上不知道该怎么做.我无法转置它或做任何其他事情.你可以帮帮我吗?
当我运行此命令时,出现以下错误:aspnet_regiis.exe -i
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -i Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.0 用于在本地计算机上安装和卸载 ASP.NET 的管理实用程序。版权所有 (C) 微软公司。版权所有。开始安装 ASP.NET (4.0.30319.0)。此版本的操作系统不支持此选项。管理员应使用“打开/关闭 Windows 功能”对话框、服务器管理器管理工具或 dism.exe 命令行工具来安装/卸载带有 IIS8 的 ASP.NET 4.5。有关更多详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=216771。已完成安装 ASP.NET (4.0.30319.0)。
您能告诉我何时需要在 WebApi/MVC 应用程序中使用多个参数而不是单独的模型吗?
我有一个需要几个参数的操作。
[HttpPost]
public InfoViewModel GetInfo(IEnumerable<Guid> Ids, DocumentType type)
{
// to do smth
}
Run Code Online (Sandbox Code Playgroud)
我也可以将此操作转换为以下内容:
[HttpPost]
public InfoViewModel GetInfo(RequestViewModel model)
{
// to do smth
}
Run Code Online (Sandbox Code Playgroud)
我需要一个用于第二种情况的特殊模型。
public class RequestViewModel
{
public IEnumerable<Guid> Ids { get; set; }
public DocumentType DocumentType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我以 JSON 格式将数据发送到服务器。您能告诉我这两种方法的优点和缺点吗?谢谢。
我有点困惑.我无法找出PreserveReferences和之间的区别MaxDepth.
假设我们有以下DTO和模型.
public class PersonEntity
{
public PersonEntity InnerPerson { get; set; }
}
public class PersonModel
{
public PersonModel InnerPerson { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如文档中所述:
以前,AutoMapper可以通过跟踪映射的内容来处理循环引用,并在每个映射上检查源/目标对象的本地哈希表,以查看该项是否已映射.事实证明,这种跟踪非常昂贵,您需要使用PreserveReferences选择使用圆形地图才能工作.或者,您可以配置MaxDepth.
我的映射:
cfg.CreateMap<PersonModel, PersonEntity>().MaxDepth(1);
cfg.CreateMap<PersonEntity, PersonModel>();
Run Code Online (Sandbox Code Playgroud)
程序:
var personModel = new PersonModel();
personModel.InnerPerson = personModel;
var entity = Mapper.Map<PersonEntity>(personModel);
Run Code Online (Sandbox Code Playgroud)
这就是我期望得到的:
这就是我实际得到的:
我可以使用它们(PreserveReferences和MaxDepth)来解析循环引用,但我没有看到区别.什么时候我应该在MaxDepth方法中使用不同的深度?那么,有人能提供吗?提前致谢.
我正在尝试vstest通过遵循本文来实现我的自定义记录器,为命令行测试运行程序vstest.console.exe编写记录器我在VS解决方案中有3个项目。
ClassLibrary1
仅包含一个示例Service类。
public class Service
{
public int GetDocumentNumber(Guid documentId)
{
if (documentId == Guid.Empty)
{
throw new ArgumentException("Document id is empty guid.");
}
return 178;
}
}
Run Code Online (Sandbox Code Playgroud)
SimpleLoggerVSTest(ClassLibrary)仅包含一个类。的ITestLogger是从一个接口Microsoft.VisualStudio.TestPlatform.ObjectModel。
[ExtensionUri("logger://SimpleConsoleLogger/v1")] /// Uri used to uniquely identify the console logger.
[FriendlyName("SimpleLogger")] /// Alternate user friendly string to uniquely identify the logger.
public class SimpleLogger : ITestLogger
{
public void Initialize(TestLoggerEvents events, string testRunDirectory)
{
Console.WriteLine("++++ Initialize ++++");
}
} …Run Code Online (Sandbox Code Playgroud) 我的visual studio使用的MS SQL Server版本如下:
Microsoft SQL Server 2016(RTM) - 13.0.1601.5(X64)
我是NHibernate的新手,我对我应该使用什么类型的方言感到困惑.是否可以设置以下配置参数:
<hibernate-configuration>
<session-factory xmlns="urn:nhibernate-configuration-2.2">
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="dialect">NHibernate.Dialect.MsSql2016Dialect</property>
<property name="connection.connection_string">Data Source=Bookstore.mdf</property>
<mapping resource="NHibernate_1.Book.hbm.xml" assembly="NHibernate_1" />
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud) 我怎样才能将字符串转换"8/3/2017 6:12:00 AM"到"2017-08-03T06:12:00.000"使用标准的JavaScript或moment.js库?
c# ×3
vstest ×2
.net ×1
asp.net ×1
automapper ×1
gesture ×1
iis ×1
javascript ×1
list ×1
matrix ×1
momentjs ×1
nhibernate ×1
sql-server ×1
windows ×1
xamarin ×1