小编Dar*_*der的帖子

通用Web Api控制器,支持任何模型

是否可以使用支持项目中任何模型的通用Web API?

class BaseApiController<T> :ApiController
{
    private IRepository<T> _repository;

    // inject repository

    public virtual IEnumerable<T> GetAll()
    {
       return _repository.GetAll();
    }

    public virtual T Get(int id)
    {
       return _repositry.Get(id);
    }

    public virtual void Post(T item)
    {
       _repository.Save(item);
    }
    // etc...
}

class FooApiController : BaseApiController<Foo>
{
   //..

}

class BarApiController : BaseApiController<Bar>
{
   //..
}
Run Code Online (Sandbox Code Playgroud)

这会是一个好方法吗?

毕竟,我只是重复CRUD方法?我可以使用这个基类为我做这项工作吗?

这个可以吗?你会这样做吗?任何更好的想法?

c# generics asp.net-web-api

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

应用程序无法启动,因为它的并排配置不正确

未处理的异常:System.IO.FileLoadException:无法加载文件或组合' TheLibrary,Version = 1.2.3905.36284,Culture = neutral,PublicKeyToken = 14 04827c3a8f2601'或其依赖项之一.应用程序无法启动,因为它的并排配置不正确.有关详细信息,请参阅应用程序事件日志.(来自HRESULT的异常:0x800736B1)文件名:' TheLibrary,Version = 1.2.3905.36284,Culture = neutral,PublicKe yToken = 1404827c3a8f2601'---> System.Runtime.InteropServices.COMException(0x800 736B1):应用程序无法启动因为它的并排配置是不正确的.有关详细信息,请参阅应用程序事件日志.(来自HRESULT的例外:0x800736B1)

当我查看事件日志时,我收到此错误.

"C:\ project\Debug\MyLibrary.dll"的激活上下文生成失败.无法找到依赖程序集Microsoft.VC90.DebugCRT,processorArchitecture ="x86",publicKeyToken ="1fc8b3b9a1e18e3b",type ="win32",version ="9.0.21022.8".请使用sxstrace.exe进行详细诊断.

我使用sxstrace来记录错误,结果如下:

=================开始激活上下文生成.输入参数:Flags = 0 ProcessorArchitecture = x86 CultureFallBacks = zh-CN; zh_cn ManifestPath = C:\ Windows\system32\cmd.exe AssemblyDirectory = C:\ Windows\system32 \

应用程序配置文件=

信息:解析清单文件C:\ Windows\system32\cmd.exe.INFO:Manifest Definition Identity是Microsoft.Windows.FileSystem.CMD,processorArchitecture ="x86",type ="win32",version ="5.1.0.0".信息:激活上下文生成成功.结束激活上下文生成.

=================开始激活上下文生成.输入参数:Flags = 0 ProcessorArchitecture = x86 CultureFallBacks = en-US; zh ManifestPath = C:\ Debug\TheLibrary.dll AssemblyDirectory = C:\ Debug \

应用程序配置文件=

信息:解析清单文件C:\ …

.net c# configuration dependencies

20
推荐指数
4
解决办法
5万
查看次数

代码合同在运行时

就我在一本简单的书中所读到的,代码契约可能会降低运行时性能.

是否可以在生产中禁用代码合同?

.net c# production code-contracts

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

循环缓冲区的用途是什么?

循环缓冲区有哪些用途?

使用循环缓冲区有什么好处?

它是双链表的替代品吗?

.net c# circular-buffer data-structures

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

ConcurrentHashMap put vs putIfAbsent

Java Docs说,putIfAbsent相当于

   if (!map.containsKey(key)) 
      return map.put(key, value);
   else
      return map.get(key);
Run Code Online (Sandbox Code Playgroud)

因此,如果密钥存在于地图中,则不会更新其值.它是否正确?

如果我想根据某些条件更新密钥值怎么办?说过期时间等

这是否是添加和更新缓存的更好的方法?

public void AddToCache(T key, V value)
{
   V local = _cache.putifabsent(key, value);

   if(local.equals(value) && local.IsExpired() == false){
     return;
   }
   // this is for updating the cache with a new value
   _cache.put(key, value);
}
Run Code Online (Sandbox Code Playgroud)

java concurrency caching hashmap

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

跟踪日志位置,查看位置

Trace.Write("");开发MVC或WCF应用程序时,您在哪里看到日志?什么是正确的地方?

c# wcf trace system.diagnostics

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

将两个列表与不同的对象相交

我有一个ObjA和ObjB列表如下:

List<ObjA> List1;
List<ObjB> List2;
Run Code Online (Sandbox Code Playgroud)

ObjA和ObjB都有一个共同的字段,即User,我希望基于User.Id与它们相交.

class ObjA
{ 
  User user;
  .... other properties
}

class ObjB
{ 
  User user;
  .... other properties
}

class User
{
    int Id;
     .... other props
}
Run Code Online (Sandbox Code Playgroud)

如何在Linq上将这两个列表与User.Id相交?

因此,我只想要用户列表.

c# linq

17
推荐指数
3
解决办法
4万
查看次数

图同构

是否存在图同构的算法或启发式算法?

推论:图表可以用不同的不同图纸表示.

找到不同图形图的最佳方法是什么?

algorithm graph

16
推荐指数
2
解决办法
6947
查看次数

使用.NET进行多线程文件处理

有一个包含1000个小文本文件的文件夹.我的目标是解析和处理所有这些文件,同时将更多文件填充到文件夹中.我的目的是多线程这个操作,因为单线程原型花了六分钟来处理1000个文件.

我喜欢读写器线程如下.当读者线程正在读取文件时,我想让编写器线程来处理它们.一旦阅读器开始阅读文件,我想将其标记为正在处理,例如通过重命名.读完后,将其重命名为已完成.

我如何处理这样的多线程应用程序?

使用分布式哈希表或队列更好吗?

我使用哪种数据结构可以避免锁定?

这个方案有更好的方法吗?

.net c# architecture multithreading

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

易失性HashMap与ConcurrentHashMap

我有一个缓存类,其中包含一个volatile HashMap<T>存储缓存项.

我很好奇,这将是改变的后果volatile HashMapConcurrentHashMap

我会获得性能提升吗?此缓存是只读缓存.

什么是最好的选择?只是HashMap?缓存正在一段时间内填充.

java concurrency caching hashmap

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