小编Tec*_*ium的帖子

Moq调用了一名代表

我得到了一个通过参数得到代表的类.这个类调用该委托,我想用Moq对它进行单元测试.我如何验证这个方法被调用?

示例类:

public delegate void Foo(int number);

public class A
{
   int a = 5;

   public A(Foo myFoo)
   {
      myFoo(a);
   }
}
Run Code Online (Sandbox Code Playgroud)

我想检查Foo是否被调用.谢谢.

c# delegates unit-testing moq

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

工厂模式与开放的泛型

在ASP.NET Core中,您可以使用Microsoft的依赖注入框架执行的操作之一是绑定"open generics"(未绑定到具体类型的泛型类型),如下所示:

public void ConfigureServices(IServiceCollection services) {
    services.AddSingleton(typeof(IRepository<>), typeof(Repository<>))
}
Run Code Online (Sandbox Code Playgroud)

您还可以使用工厂模式来水合依赖项.这是一个人为的例子:

public interface IFactory<out T> {
    T Provide();
}

public void ConfigureServices(IServiceCollection services) {
    services.AddTransient(typeof(IFactory<>), typeof(Factory<>));

    services.AddSingleton(
        typeof(IRepository<Foo>), 
        p => p.GetRequiredService<IFactory<IRepository<Foo>>().Provide()
    ); 
}
Run Code Online (Sandbox Code Playgroud)

但是,我还没弄清楚如何将这两个概念结合起来.看起来它会从这样的东西开始,但我需要用于水合实例的具体类型IRepository<>.

public void ConfigureServices(IServiceCollection services) {
    services.AddTransient(typeof(IFactory<>), typeof(Factory<>));

    services.AddSingleton(
        typeof(IRepository<>), 
        provider => {
            // Say the IServiceProvider is trying to hydrate 
            // IRepository<Foo> when this lambda is invoked. 
            // In that case, I need access to a System.Type 
            // object …
Run Code Online (Sandbox Code Playgroud)

c# generics dependency-injection asp.net-core

29
推荐指数
2
解决办法
4850
查看次数

我的MySQL转储输入到底有多远?

在我的公司,我们偶尔会导入大型客户MySQL数据库(40GB +),这可能需要一天时间才能加载到我们的开发人员计算机上.虽然我们接受这个加载时间,因为它是在后台完成的,但我们缺乏任何可靠的估算进口何时完成的能力.这阻止我们安排适当的时间来对其采取行动.这就像等待有线电视的家伙出现一样.

现在我最好的策略是快速show tables命令,看看已经加载了多少百分比的表.但是,由于桌子尺寸彼此之间以及与每个顾客之间的差异很大,因此这甚至不可靠.

有没有人有一个好的技术或工具可以用来获得MySQL导入的可靠百分比?

mysql mysql-management mysqldump

10
推荐指数
1
解决办法
5295
查看次数

在ASP.NET Core WebAPI中实现JSON Merge修补程序

我有兴趣在我的ASP.NET核心WebAPI中添加对部分更新的支持,我只更新调用者提供的资源上的属性,保留排除的属性不变.

对于上下文,假设我有一个资源可以描述如下:

GET /users/1
{
    title: "Mister",
    firstName: "Frederick",
    middleName: "McFeely",
    lastName: "Rodgers"
}
Run Code Online (Sandbox Code Playgroud)

如果我想允许消费者将firstName属性中存储的值从"Frederick"单独更改为"Fred",我应该能够公开PATCH支持JSON Merge Patch 的端点Content-Type,如下所示:

PATCH /users/1
Content-Type: application/merge-patch+json
{
    firstName: "Fred"
}
Run Code Online (Sandbox Code Playgroud)

但是,我认为没有简单的方法可以让我知道这firstName是唯一正在更新的属性.例如,如果我要创建一个接受PATCH动词的控制器,它可以像这样搭建:

[Route("users")]
public class UsersController : Controller {

    [HttpPatch("{userId:int}")]
    public User Patch([FromRoute] int userId, [FromBody] User user) {

        // How do I know which properties were set on User at this point?

    }

}

public class User {

    public String Title { get; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-web-api asp.net-core asp.net-core-webapi

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

使用必需的非空Guid参数路由到控制器

我要地图的http://本地主机/ GUID的推移,这里ResellerController和火Index,只有当该控制器的作用Guid-goes-here不是空的Guid.

我的路由表如下所示:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Reseller",
        "{id}",
        new { controller = "Reseller", action = "Index", id = Guid.Empty }  
        // We can mark parameters as UrlParameter.Optional, but how to make it required?
    );

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );

}
Run Code Online (Sandbox Code Playgroud)

ResellerController看起来像这样的动作:

public ActionResult …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-routing

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

阻止XslCompiledTransform使用自关闭标记

XslCompiledTransform用来将XML文件转换为HTML.有没有办法阻止它使用自闭标签.

例如

<span></span> <!-- I want this even if content empty -->
<span/> <!-- stop doing this! ->
Run Code Online (Sandbox Code Playgroud)

无论我使用哪种浏览器,span上的自动关闭标签都会弄乱我的文档,虽然它是有效的XML,但只是'span'不允许有自动关闭标签.

我可以在我的xsl或我的C#.Net代码中设置一个设置,以防止使用自关闭标签吗?

.net html c# xslt shorttags

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

TypesScript警告:使用接口而不是类型文字.:

Linting我的代码,我在InternaleStateType定义中得到了这个TS警告

 [line 8]    export type InternalStateType = {
              [key: string]: any,
              appName: string,
              darkMode: boolean,
              defaultLang: string,
              topnavTitle: string,
              messagePanelOpen: boolean,
              sidenavOpen: boolean,
              sidenavMode: string,
              sidenavCollapse: boolean,
              pageFullscreen: boolean,
              pageFooter: boolean,
              initial: boolean,
            };
Run Code Online (Sandbox Code Playgroud)

InternalStateType用于我的App服务

/**
 * App service
 */
@Injectable()
export class AppService {

  // Set your states default value.
  private state: InternalStateType = {
    appName: 'MyApp',
    darkMode: false,
    defaultLang: 'en',
    topnavTitle: 'MyApp',
    messagePanelOpen: false,
    sidenavOpen: false,
    sidenavMode: 'over',
    sidenavCollapse: true,
    pageFullscreen: false,
    pageFooter: false,
    initial: false,
  };
Run Code Online (Sandbox Code Playgroud)

是否意味着更换更好: …

interface typescript

6
推荐指数
2
解决办法
2729
查看次数

使用xsltc.exe XslCompiledTransforms时,如何解析具有相对路径的<xsl:import>和<xsl:include>元素?

作为我们的Web应用程序构建过程的一部分,我已经设置了我们的XSLT样式表,只要我们运行完整的编译,就可以使用Microsoft的xsltc.exe编译器构建.在本地开发期间,这很有效,因为代码是在同一位置编译和托管的.但是,一旦将其放在构建服务器上,就会出现问题.

构建服务器将像在本地一样编译XSLT样式表,但随后会运行一个脚本,将编译后的代码部署到我们的内部登台Web服务器.一旦这些二进制文件从编译它们的位置移开,相关路径<xsl:import><xsl:include>元素就不再正确解析,从而导致在运行XSLT样式表时看起来像这样的异常.

Could not find a part of the path 'e:\{PATH}\xslt\docbook\VERSION'.
    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
    at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, …
Run Code Online (Sandbox Code Playgroud)

c# xslt xslcompiledtransform

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

控制 MySQL 事务范围内的系统变量

MySQL 允许用户在运行时操作级别范围内的动态系统变量。我注意到,如果您在事务中设置作用域系统变量,则提交和回滚会使该作用域变量处于更改状态。有没有办法将系统变量的更改范围限制为单个事务,或者至少在回滚时将其重置为其原始事务前值?GLOBALSESSIONSESSIONSESSION

作为相关的示例,由于 MySQL 中缺乏 NOWAIT 支持,我正在采取以下解决方法:

SET @cachedTimeout = @@SESSION.INNODB_LOCK_WAIT_TIMEOUT;
SET @@SESSION.INNODB_LOCK_WAIT_TIMEOUT = 1;

SELECT * FROM sometable FOR UPDATE;

SET @@SESSION.INNODB_LOCK_WAIT_TIMEOUT = COALESCE(@cachedTimeout, @@SESSION.INNODB_LOCK_WAIT_TIMEOUT);
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,如果SELECT查询由于某种原因失败,我想回滚到之前的超时值。

mysql sql transactions

5
推荐指数
0
解决办法
522
查看次数

有没有办法在Salesforce.com中创建新的多态外键关系?

通过使用Salesforce.com合作伙伴WSDL,我正在开发外部系统和Salesforce.com之间的同步.正如您可能期望的那样,Salesforce.com中默认不存在的对象将通过GUI创建为自定义对象.虽然移植基本字段没有问题,但我对关系有一些问题.

一些外部系统的关系由多态的外键定义(例如,它们可以存储两种或更多种不同类型的标识符).虽然我看到Salesforce.com 在他们的文档中提供了如何处理SOQL中的多态外键的参考,但我还没有找到实际创建新的多态外键字段的方法.

有没有办法在Salesforce.com中创建新的多态外键字段,或者您是否必须为可能被引用的每种类型创建单独的外键字段?

salesforce

4
推荐指数
1
解决办法
897
查看次数