我正在尝试找出构建API的最佳方法; 我们在标准REST结构中设置了评论(列表一,列出所有,创建,更新等).在不完全符合示例的情况下:每个评论可以链接到一个或多个其他类型,例如事件,位置或事物.
我的想法是网址将是:/ event/reviews /(或相反的例如/ reviews/event /)/ location/reviews// thing/reviews /
然而,我可以看到的问题是每个这样的"GET"应该返回父对象,即一个事件.
那么使用ServiceStack,处理这种情况的最佳方法是什么?是为每个数据请求创建一个自定义服务而不是滥用开箱即用的REST设置还是我错过了一些更基本的东西?
在集合类型上使用支撑初始化程序是否设置了它的容量,或者您是否仍需要指定它?
那就是:
var list = new List<string>(){ "One", "Two" };
Run Code Online (Sandbox Code Playgroud)
结果与此相同:
var list = new List<string>(2){ "One", "Two" };
Run Code Online (Sandbox Code Playgroud) 我正在尝试MemoryCache使用.Net 4中的新功能来缓存我们的一个应用程序中的一些数据.我遇到的麻烦是对象被更新,缓存似乎是持久的变化,例如
public IEnumerable<SomeObject> GetFromDatabase(){
const string _cacheKeyGetDisplayTree = "SomeKey";
ObjectCache _cache = MemoryCache.Default;
var objectInCache = _cache.Get(_cacheKeyGetDisplayTree) as IEnumerable<SomeObject>;
if (objectInCache != null)
return objectInCache.ToList();
// Do something to get the items
_cache.Add(_cacheKeyGetDisplayTree, categories, new DateTimeOffset(DateTime.UtcNow.AddHours(1)));
return categories.ToList();
}
public IEnumerable<SomeObject> GetWithIndentation(){
var categories = GetFromDatabase();
foreach (var c in categories)
{
c.Name = "-" + c.Name;
}
return categories;
}
Run Code Online (Sandbox Code Playgroud)
如果我GetWithIndentation()先调用然后再调用GetFromDatabase()我希望它返回原始列表,SomeObject但它会返回修改后的项目(名称上带有" - "前缀).
我以为ToList()破坏了参考,但似乎仍然存在变化.我敢肯定这很明显,但是有人能发现我哪里出错吗?
有人知道你可以将一个大的(550KB)重写文件拆分成更小的部分吗?
我们遇到的问题是旧网站有数千个需要映射的网址,但由于250KB的限制我们无法映射它们.
我正在考虑以下方面的事情:
<rewrite>
<rewriteMaps>
<rewriteMap configSource="config\RewriteMaps.LargePart1.config" />
<rewriteMap configSource="config\RewriteMaps.LargePart2.config" />
<rewriteMap configSource="config\RewriteMaps.LargePart3.config" />
<rewriteMap configSource="config\RewriteMaps.LargePartX.config" />
</rewriteMaps>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
但问题是,rewriteMap节点不是部分,所以不能使用configSource.有没有人想出一个优雅的解决方案呢?
我们一直使用EF作为当前应用程序中大多数数据访问的主干,我们正在逐渐远离它,以获得更多服务器密集型查询,并将其替换为Dapper.
考虑到这一点,实现与Autofac连接的首选方法是什么?是注入IDBConnection还是连接字符串?IDBConnection对我来说感觉更好,但是如果你使用"使用"它会被处理掉,后来的电话无法访问.
c# ×4
api ×1
asp.net ×1
autofac ×1
collections ×1
dapper ×1
memorycache ×1
servicestack ×1
web-config ×1
xml ×1