调用以下代码中的Get工作正常:
public class ContractService : IContractService
{
private readonly IRepository<Contract> repository;
public ContractService(IRepository<Contract> repository)
{
this.repository = repository;
}
public Contract Get(int contractId)
{
return repository.Query().Where(x => x.Id == contractId).FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时:
public class ContractService : CRUDService<Contract>, IContractService
{
public ContractService(IRepository<Contract> repository) : base(repository)
{
}
}
public class CRUDService<TEntity> : ICRUDService<TEntity> where TEntity : IEntity
{
protected readonly IRepository<TEntity> repository;
public CRUDService(IRepository<TEntity> repository)
{
this.repository = repository;
}
public TEntity Get(int id)
{
var entities = this.repository.Query().Where(s => s.Id …Run Code Online (Sandbox Code Playgroud) 我找不到任何关于使用/实现的文档IXunitTestCollectionFactory.
我有一些关于如何解决某些测试用例存在的自定义逻辑,从xunit源/样本中的翻版,这似乎是要走的路.
public class Foo : IXunitTestCollectionFactory
{
public Foo(ITestAssembly assembly, IMessageSink messageSink)
{
throw new NotImplementedException();
}
public ITestCollection Get(ITypeInfo testClass)
{
throw new NotImplementedException();
}
public string DisplayName
{
get { throw new NotImplementedException(); }
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎永远不会被运行,或者至少吞下异常并且我放在那里的任何真实代码似乎都没有运行.
我已经尝试将其添加到测试组件中,但无济于事
[assembly: CollectionBehavior("MyAssembly.Foo", "MyAssembly")]
Run Code Online (Sandbox Code Playgroud)
我从哪里开始?这个地方有没有这方面的文件?
给定一个字符串:"Person.Address.Postcode"我希望能够在Person的实例上获取/设置此postcode属性.我怎样才能做到这一点?我的想法是将字符串拆分为"." 然后遍历各个部分,查找前一个类型的属性,然后构建一个看起来像(伪语法道歉)的表达式树:
(person => person.Address) address => address.Postcode
Run Code Online (Sandbox Code Playgroud)
虽然我真的很麻烦地创建表达式树!如果这是最好的方式,有人可以建议如何去做,还是有更简单的选择?
谢谢
安德鲁
public class Person
{
public int Age { get; set; }
public string Name { get; set; }
public Address Address{ get; set; }
public Person()
{
Address = new Address();
}
}
public class Address
{
public string Postcode { get; set; }
}
Run Code Online (Sandbox Code Playgroud) 当我提交交易时,我得到:
System.Threading.SemaphoreFullException: Adding the specified count to the semaphore would cause it to exceed its maximum count.
at System.Threading.Semaphore.Release(Int32 releaseCount)
at System.Data.ProviderBase.DbConnectionPool.PutNewObject(DbConnectionInternal obj)
at System.Data.ProviderBase.DbConnectionPool.DeactivateObject(DbConnectionInternal obj)
at System.Data.ProviderBase.DbConnectionPool.PutObject(DbConnectionInternal obj, Object owningObject)
at System.Data.ProviderBase.DbConnectionInternal.CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Close()
at System.Data.SqlClient.SqlConnection.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
// rest of my stack trace here
Run Code Online (Sandbox Code Playgroud)
这是什么意思?我是不是在某个地方正确地关闭了连接并填满了游泳池?如果是这样,我如何在SQL Server 2008 R2中进行检查?
这是我的代码(虽然这可能不是导致连接泄漏的代码)
using (var connection = connectionFactory.GetConnection())
{
connection.Open();
using (var transaction = connection.BeginTransaction())
{
try
{
using (var command = connection.CreateCommand())
{
command.Connection = connection;
command.Transaction …Run Code Online (Sandbox Code Playgroud) 我有一系列句子,我需要分析它们,看看它们有多相似.
有没有建立的算法来做到这一点?
我很在乎:
我之前使用Levenshtein距离和n-gram进行拼写,虽然我不完全相信这些是否符合我的目的.
天真地说,"我不关心拼写差异,拼写错误可以被视为不同的词语",尽管考虑到这一点可能会很好.
也许在空间分割句子和上述(或其他)算法之一的混合可能是一个起点
有哪些选择?有什么建议?
谢谢!
我想我已经阅读了 SO 上的每个线程以及互联网上的每个相关页面,所有内容都有一些问题的变体
我想:
Node 14 据说支持 ESM,所以让我们使用它
设置1
我"type": "module"在我的package.json
然后我的webpack.config.js看起来像:
import { somethingUseful } from './src/js/useful-things.js';
export default (env, argv) => {
return {
// webpack config here
};
}
Run Code Online (Sandbox Code Playgroud)
运行> webpack(webpack-cli)我得到:
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: D:\git\Useroo\webpack.config.js
require() of ES modules is not supported.
require() of webpack.config.js from C:\nvm\v14.14.0\node_modules\webpack-cli\lib\groups\resolveConfig.js is an …Run Code Online (Sandbox Code Playgroud) Global.asax.cs扩展的HttpApplication类是否在应用程序的生命周期内存在?
在什么时候可以创建/销毁实例?
我正在经历两次application_start触发,它似乎与应用程序池回收有关,并且通过此过程发出请求.我还没有完全调试它,我现在没有时间深入研究它.那么,就上述问题而言,以下是一个安全的解决方案吗?
public class MvcApplication : System.Web.HttpApplication
{
public static object syncLock = new object();
public static bool applicationBooted;
protected void Application_Start()
{
if(!applicationBooted)
lock (syncLock)
if(!applicationBooted)
{
// bootstrap here
applicationBooted = true;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有两节课:
class Parent
{
public virtual Child Child { get; set; }
}
class Child
{
public virtual IList<GrandChild> GrandChildren { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个Parent从我加载的实例ISession,Parent.Child是延迟加载的(此时未加载).Child.GrandChildren也很懒.
如果我这样做:
session.Save(new Parent { Child = existingParent.Child } );
Run Code Online (Sandbox Code Playgroud)
我明白了 collection [Child.GrandChildren] was not processed by flush()
如果我引起existingParent的Child被加载性能,只需通过访问:
var x = existingParent.Child.Name
Run Code Online (Sandbox Code Playgroud)
问题消失了.为什么会发生这种情况,我该如何解决它 - 最好不必改变我的提取策略?
**编辑:**父母对孩子有FK
我正在使用NH 2.1.2.4000
谢谢
为什么TestDriven.Net不能用于我的gallio/mbunit测试?
我已经将TDD.Net与MbUnit v2一起使用并且没有任何问题,但是在我的新电脑上使用新的gallio版本时,它什么也没做.
从解决方案资源管理器中的tdd右键单击菜单,如果我"使用调试器进行测试",我会在屏幕底部的VS状态栏中显示"0传递,0失败,0跳过".
如果我右键单击我的夹具并做同样的事情,我得到
"The target type doesn't contain tests from a known test framework or a 'Main' method."
Run Code Online (Sandbox Code Playgroud)
如果我在单独的测试中执行它,看起来它没有运行SetUp,所以测试失败(但至少它运行)
我知道这听起来像这个问题,但我的注册表看起来是正确的.
如果我尝试从TDD.Net菜单运行NCover,没有任何反应(除了输出窗口闪烁)
当我用resharper"运行单元测试"时,它会将它们全部拾取并正确运行.
我使用Gallio/MbUnit 3.0.5.546,TDD.Net 2.18.2268,Resharper 4.1,VS 2k8 Pro 9.0.30729.1 SP,.Net 3.5 SP1,Windows Server 2k8(x86)
我有一个界面:
IRepository<T> where T : IEntity
Run Code Online (Sandbox Code Playgroud)
我正在使用一些虚假的存储库实现来破坏我的UI,只返回任何旧数据.
它们看起来像这样:
public class FakeClientRepository : IRepository<Client>
Run Code Online (Sandbox Code Playgroud)
目前我这样做:
ForRequestedType<IRepository<Client>>()
.TheDefaultIsConcreteType<FakeRepositories.FakeClientRepository>();
Run Code Online (Sandbox Code Playgroud)
但我所有的IEntities都有很多次.是否可以使用Scan自动注册我的所有虚假存储库以用于其各自的IRepository?
编辑:这是我得到的,但我得到错误说请求的类型没有注册:(
Scan(x =>
{
x.TheCallingAssembly();
x.IncludeNamespaceContainingType<FakeRepositories.FakeClientRepository>();
x.AddAllTypesOf(typeof(IRepository<>));
x.WithDefaultConventions();
});
Run Code Online (Sandbox Code Playgroud)
谢谢
安德鲁
c# ×3
nhibernate ×2
ado.net ×1
algorithm ×1
asp.net ×1
gallio ×1
javascript ×1
lambda ×1
mbunit ×1
ncover ×1
node.js ×1
structuremap ×1
transactions ×1
webpack ×1
xunit ×1