小编Gil*_*rdo的帖子

Simple Injector - 没有为此对象定义的无参数构造函数

我有一个新的MVC Web项目,我在MVC和WebApi中使用.我在我的全局文件中使用以下代码设置了Simple Injector(来自nuGet的2.5.2版本)

// Register Injectors
SimpleInjectorConfig.Register();
Run Code Online (Sandbox Code Playgroud)

在我的SimpleInjectorConfig.cs文件中

public class SimpleInjectorConfig
{
    public static void Register() {
        // Create the container as usual.
        Container container = new Container();

        // services
        container.Register<IService, MyService>();

        // data
        container.Register<IRepository, MyRepository>();

        // Register your types, for instance using the RegisterWebApiRequest
        // extension from the integration package:
        container.RegisterMvcControllers(
            System.Reflection.Assembly.GetExecutingAssembly());

        container.RegisterMvcAttributeFilterProvider();

        // This is an extension method from the integration package.
        container.RegisterWebApiControllers(GlobalConfiguration.Configuration);

        // verify its all ok
        container.Verify();

        // add dependency
        GlobalConfiguration.Configuration.DependencyResolver = 
            new SimpleInjectorWebApiDependencyResolver(container);
    }
} …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc dependency-injection controller simple-injector

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

什么时候"太多"异步并等待?所有方法都应该返回Task吗?

我正在构建一个项目并使用async和await方法.每个人都说异步应用程序是从头开始构建的,那么你真的应该有任何同步方法吗?如果所有方法都返回一个Task,那么你可以异步使用它吗?

让我们举一个简单的例子,我在使用Sql将数据加载到集合中,这里有一些代码.

此代码使用ExecuteQueryAsync方法从表中加载数据,该方法GetQuery构造SQL,但调用GetTableColumns.生成并执行SQL后,我遍历集合并通过调用填充每个对象GetDataFromReader.

我的非异步方法应该是异步的吗?我是否在考虑过多的编程同步方式并缺少某些东西?

public async Task<ICollection<MyObject>> ExecuteQueryAsync(Module module, List<SqlParameter> parameters)
{
    var result = new Collection<MyObject>();
    var query = GetQuery(module);

    using (var conn = new SqlConnection(_context.Database.Connection.ConnectionString))
    {
        await conn.OpenAsync();

        using (var cmd = new SqlCommand(query, conn))
        {
            if (parameters != null)
                cmd.Parameters.AddRange(parameters.ToArray());

            using (var dr = await cmd.ExecuteReaderAsync())
            {
                while (await dr.ReadAsync())
                {
                    result.Add(GetDataFromReader(module, dr));
                }

            }
        }

    }

    return result;
}

public string GetQuery(Module module)
{
    return "SELECT " + …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net asynchronous async-await

10
推荐指数
2
解决办法
5087
查看次数

在控制器级别设置NullValueHandling

暂时的部分,我想从我的api响应中排除空值,所以在我的startup.cs文件中,我有这个.

services.AddMvc()
    .AddJsonOptions(options =>
    {
        // Setup json serializer
        options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        options.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
    });
Run Code Online (Sandbox Code Playgroud)

但是有可能声明在一个或多个控制器上,我实际上想要包含NULL值吗?

c# asp.net json.net asp.net-core

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

获取实体表名称 - EF7

正如问题所述,任何人都知道如何在实体框架7中获取实体表名称?

我有在实体框架6.1中执行此操作的代码(来自另一个站点,无法找到链接),但实体框架7中似乎没有引用任何接口/对象.

EF6.1的代码

public string GetTableName(Type type)
{
    var metadata = ((IObjectContextAdapter)this).ObjectContext.MetadataWorkspace;
    var objectItemCollection = ((ObjectItemCollection)metadata.GetItemCollection(DataSpace.OSpace));
    var entityType = metadata.GetItems<EntityType>(DataSpace.OSpace).Single(e => objectItemCollection.GetClrType(e) == type);
    var entitySet = metadata.GetItems(DataSpace.CSpace).Where(x => x.BuiltInTypeKind == BuiltInTypeKind.EntityType).Cast<EntityType>().Single(x => x.Name == entityType.Name);
    var entitySetMappings = metadata.GetItems<EntityContainerMapping>(DataSpace.CSSpace).Single().EntitySetMappings.ToList();

    EntitySet table = null;

    var mapping = entitySetMappings.SingleOrDefault(x => x.EntitySet.Name == entitySet.Name);
    if (mapping != null)
    {
        table = mapping.EntityTypeMappings.Single().Fragments.Single().StoreEntitySet;
    }
    else
    {
        mapping = entitySetMappings.SingleOrDefault(x => x.EntityTypeMappings.Where(y => y.EntityType != null).Any(y => y.EntityType.Name == entitySet.Name));

        if (mapping != null) …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework entity-framework-6 entity-framework-core

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

在移动设备上将div从上到下移动

我可以使用bootstrap本地执行此操作吗?我正在使用版本4(在alpha中),但如果它适用于版本3,它应该适用于v4.

我在列中有2个div就像这样

<div class="row">
    <div class="col-xs-12">
        <div>TOP ON DESKTOP, BOTTOM ON MOBILE</div>
        <div>BOTTOM ON DESKTOP, TOP ON MOBILE</div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法可以让div在移动设备上交换?我不想在这里使用任何javascript,我想只使用"bootstrap"类,如果可能的话.

如果使用bootstrap是不可能的,那么请仅使用css.

html css twitter-bootstrap bootstrap-4

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

ASP.NET 5未在开发模式下运行

我已将我的ASP.NET 5项目更新为beta 8,现在我们应该使用以下web命令

"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
},
Run Code Online (Sandbox Code Playgroud)

现在我用环境变量更新了我的项目.

在此输入图像描述

这也更新了我的launchSettings.json文件,如此

{
  "profiles": {
    "web": {
      "commandName": "web",
      "environmentVariables": {
        "ASPNET_ENV": "Development"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,每次我运行命令时dnx web它都说托管环境是生产.为什么不在开发模式下启动?

在此输入图像描述

.net asp.net asp.net-core

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

EFCore 2.0 默认所有日期字段使用 datetime2

在 EF6 中,我可以使用以下代码,以便我的所有日​​期都使用 datetime2(0) 作为列类型

modelBuilder.Properties<DateTime>()
    .Configure(c => c
    .HasColumnType("datetime2")
    .HasPrecision(0));
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 EFCore 中做到这一点?

.net c# entity-framework entity-framework-core asp.net-core

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

JavaFX虚拟键盘

有这样的事吗?我用Google搜索了javafx虚拟键盘,但似乎看起来没有任何效果.我看过这篇文章,但没有代码或示例

http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/embed.htm

有没有人在javafx应用程序中拥有虚拟键盘的经验?我需要能够在聚焦文本字段时显示普通键盘或数字小键盘.

java javafx java-8 javafx-2

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

使用JSON字符串将多个值添加到1个用户声明中

我在验证用户时使用.net声明主体.在我们的系统中,用户具有多个权限(最多可以为70).

现在,用户不是在每个请求上查询数据库,而是认为将权限存储为声明是好的.我试图将每个权限存储为单独的声明,但即使获得10个权限也会大大增加令牌的大小.

因此,我没有在1个权限中添加1个权限,我想知道如果我将所有权限添加到1个权限中,它是否会有所不同,而且确实如此.它保持令牌的大小很小,但我有我需要的权限.

现在要做到这一点,我必须将我的所有权限从数组转换为JSON字符串,然后将它们保存为我的声明.为了获得声明,我可以将字符串反序列化为一个数组,我根本不必查询数据库.

这样做可以,或者这是非常糟糕的做法?我是在制作一颗滴答作响的定时炸弹吗?这样做会很快爆炸吗?

这里的示例代码

var identity = new ClaimsIdentity(context.Options.AuthenticationType);
identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));

// get user permissions
var permissions = await _permissionService.GetAllAsync(user);

// create list of all permissions
List<object> claimPermissions = new List<object>();

foreach (var item in permissions)
{
    claimPermissions.Add(new
    {
        Action = item.Action,
        Type = item.Type
    });
}

// convert list to json
var json = Newtonsoft.Json.JsonConvert.SerializeObject(claimPermissions);

// add claim
identity.AddClaim(new Claim("Permissions", json));
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net permissions claims-based-identity

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

将项目符号添加到JavaFX标签

是否可以在JavaFX标签的开头添加项目符号?

这是标签的基本FXML

<Label fx:id="lblTerm1" text="Label" wrapText="true" VBox.vgrow="ALWAYS" />
Run Code Online (Sandbox Code Playgroud)

它输出这样的东西

我的名字

我想要的东西

  • 我的名字

java javafx javafx-2 fxml javafx-8

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