小编Dea*_*ano的帖子

C#3.5参数的Optional和DefaultValue

我正在使用C#.net 3.5来构建应用程序.我一直在使用.net 4.0中的可选参数属性,没有任何问题.我注意到在3.5中有选项(解决方法)将以下属性添加到您的方法中,如下所示:

    public static void MethodName(string name, [Optional][DefaultValue(null)]string placeHolder)
    {

    }
Run Code Online (Sandbox Code Playgroud)

即使我已经将属性添加到方法中,如果我尝试这样调用它:

     MethodName("test");
Run Code Online (Sandbox Code Playgroud)

编译器会抱怨它正在寻找两个参数而不是一个参数.实际上是否可以使用C#.net 3.5执行此操作?难道我做错了什么?

.net c# .net-3.5

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

AutoMapper - 使用相同的源和目标对象类型映射

我正在使用Automapper来获取两个相同类型的对象,并映射已更改的任何新值.我尝试使用下面的代码,但它不断抛出错误,我甚至不确定这是否可以通过Automapper实现.

例如:

        Mapper.CreateMap<UserDetails, UserDetails>();
        UserDetails userDetails = Mapper.Map<UserDetails, UserDetails>(userDetailsCurrent, userDetailsNew);
Run Code Online (Sandbox Code Playgroud)

基本上,我需要将从新对象"userDetailsNew"进入的任何新值复制到现有对象"userDetailsCurrent" - 即使它们属于同一类型.这样我就可以用新值"更新"现有对象.我这样做的原因是因为我不确定将传递哪些用户详细信息 - 我需要在它们到达时映射它们.

我通常使用Automapper来映射具有相似属性的不同对象 - 但我认为我可以使用Automapper的强大功能以这种方式实现相同的功能.甚至可能有更好的解决方案 - 任何帮助将不胜感激!

c# automapper

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

ASP.NET vNext如何处理config.json中的缓存,压缩和MimeMap?

在以前的版本中,可以使用类似下面的代码在Web.Config文件中添加和调整所有这些设置:

<staticContent>
  <mimeMap fileExtension=".webp" mimeType="image/webp" />
  <!-- Caching -->
  <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="96:00:00" />
</staticContent>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
  <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
  <dynamicTypes>
    <add mimeType="text/*" enabled="true" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/javascript" enabled="true" />
    <add mimeType="*/*" enabled="false" />
  </dynamicTypes>
  <staticTypes>
    <add mimeType="text/*" enabled="true" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/javascript" enabled="true" />
    <add mimeType="*/*" enabled="false" />
  </staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
Run Code Online (Sandbox Code Playgroud)

但是,由于Web.Config不再出现在ASP.NET vNext中,你如何调整这样的设置?我搜索过网络ASP.NET Github仓库,但没有遇到任何问题 - 任何想法?

compression asp.net asp.net-mvc caching asp.net-core

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

检索缓存中的所有项目

我最近起步Enyim Memcached并且运行良好.使用该库,我能够存储和检索项目没有问题.

但是,我想知道是否有办法从缓存中检索所有项目.我知道您可以通过其键检索项目:

  MemcachedClient client = new MemcachedClient()
  object o = client.Get("key");
Run Code Online (Sandbox Code Playgroud)

但我似乎无法看到一个GetAll()或类似的方法,我错过了什么?

c# memcached caching enyim

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

服务工作者和承诺:没有返回正确的答复

在Service Worker中,我使用以下代码来测试外部JavaScript文件是否需要超过500毫秒才能返回.下面的代码也使用Promise竞争条件来确定网络是更快还是超时.如果超时获胜,那么我希望返回408响应.

function timeout(delay) {
    return new Promise(function(resolve, reject) {
        setTimeout(function(){
          new Response('', {
              status: 408,
              statusText: 'Request timed out.'
          });
        }, delay);
    });
}

self.addEventListener('fetch', function(event) {
    // Only fetch JavaScript files for now
    if (/\.js$/.test(event.request.url)) {
      event.respondWith(Promise.race([timeout(500), fetch(event.request.url)]));
    } else {
      event.respondWith(fetch(event.request));
    }
});
Run Code Online (Sandbox Code Playgroud)

我通过使用开发工具限制网络连接并强制它花费超过设置的500毫秒来测试这一点.

Chrome开发工具

超时每次都会赢,并记录到控制台,这正是我所期望的.但是,它没有按预期返回408,而是返回200.任何想法?

你可以在Github上看到一个这样的例子:https: //deanhume.github.io/Service-Workers-Fetch-Timeout/

和来源:

https://github.com/deanhume/Service-Workers-Fetch-Timeout/blob/gh-pages/service-worker.js

javascript es6-promise service-worker progressive-web-apps

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

MongoDB - 如何忽略反序列化错误

我正在使用 MongoDB CSharp 驱动程序来检索数据集合。不幸的是,其中一些数据不是很“干净”,因为某些字段同时是字符串和整数。正如预期的那样,反序列化过程每次遇到与正确类型不匹配的数据时都会引发异常。

我在网络上以及 StackOverflow 上进行了广泛的搜索,但都没有成功。有没有办法在反序列化时简单地处理/忽略异常并移至下一条记录?

我的代码看起来与此类似:

        MongoClient client = new MongoClient(MongoConnectionString);
        MongoServer server = client.GetServer();
        MongoDatabase database = server.GetDatabase(DatabaseName);

        MongoCollection<BookingLines> bookingLines = database.GetCollection<BookingLines>("bookinglines");

        var query = from e in bookingLines.AsQueryable() where e.Status != "void" select e;
Run Code Online (Sandbox Code Playgroud)

该代码通常会在上面的最后一行抛出错误。我还尝试将 [BsonIgnore] 属性添加到某些字段。

任何想法或建议都会非常有帮助。

c# mongodb deserialization mongodb-.net-driver

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