小编Sim*_*row的帖子

ASP.NET MVC的插件体系结构

我花了一些时间看看Phil Haack关于分组控制器的文章非常有趣.

目前我正在试图弄清楚是否可以使用相同的想法为我正在开发的项目创建插件/模块化架构.

所以我的问题是:菲尔的文章中的区域是否可能分为多个项目?

我可以看到名称空间会自行解决,但我担心最终会在正确的地方出现.是否可以使用构建规则进行整理?

假设在单个解决方案中有多个项目可以实现上述目标,那么是否有人对使用单独的解决方案和编码到预定义的接口集合的最佳方法有任何想法?从区域移动到插件.

我有一些插件架构的经验,但没有大量的经验,所以这方面的任何指导都会有用.

asp.net-mvc plugins

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

比较C#中的二进制文件

我想比较两个二进制文件.其中一个已经存储在服务器上,在我最初存储它时,数据库中预先计算了CRC32.

我知道如果CRC不同,那么文件肯定是不同的.但是,如果CRC是相同的,我不知道文件是什么.所以,我正在寻找一种比较两个流的有效方法:一个来自发布的文件,另一个来自文件系统.

我不是溪流的专家,但我很清楚,就内存使用而言,我可以轻松地在这里拍摄自己.

c# compare file

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

StructureMap InstanceScope.Hybrid和IDisposable

我正在开发一个asp.net-mvc应用程序.linq数据上下文通过结构图传递到我的服务对象中.我已经准备好了混合动力的范围.这一切都很好.

protected override void configure()
{
    ForRequestedType<AetherDataContext>()
        .TheDefaultIs(() => new AetherDataContext())
        .CacheBy(InstanceScope.Hybrid);
}
Run Code Online (Sandbox Code Playgroud)

问题是我继续运行我的内存,我想知道IDisposable接口是否实际被调用.

有人有任何想法吗?

没有人对可能导致我记忆异常的事情有任何其他想法吗?

更新:

所以一些额外的信息,我只是在我的数据上下文填充了几个方法,在那里放置制动点.

protected override void Dispose(bool disposing)
{
    Debug.WriteLine("Disposing: " + DateTime.Now);
    base.Dispose(disposing);
}

public new void Dispose()
{
    Debug.WriteLine("Disposing: " + DateTime.Now);
    base.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

我不太确定我这样做是正确的,我猜这个新方法会被调用吗?

无论如何,两个制动点都没有被击中.但是,每个请求都会调用同一个类的构造函数.我不太理想.

c# linq structuremap asp.net-mvc inversion-of-control

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

ASP.NET MVC中的模型警告

我目前正在使用asp.net mvc中的ModelStateDictionary来保存验证错误并将其传递给用户.能够检查整个模型是否对ModelState.IsValid有效是特别的.但是,我正在处理的当前应用程序需要能够报告警告.这些并不重要,因此表单内容仍然可以保存,但应该向用户显示,以便可以选择采取措施.

我一直在查看框架,看看是否有任何明显的地方可以扩展它以允许我这样做.我在想另一个带有警告的字典和模型错误的子类称为模型警告.我不确定如何让框架在视图等中使用我的新容器类,但我仍然希望所有现有的错误内容都能正常工作.

如果有人尝试过任何相似或有任何想法,我会很感激他们的意见.

更新:

我已经扩展了ViewDataDictionary以添加一些警告

public class AetherViewDataDictionary : ViewDataDictionary
{
    public AetherViewDataDictionary()
    {
        ModelStateWarning = new ModelStateDictionary();
    }

    public AetherViewDataDictionary(object model) : base(model)
    {
        ModelStateWarning = new ModelStateDictionary();
    }

    public AetherViewDataDictionary(ViewDataDictionary viewDataDictionary) : base(viewDataDictionary) 
    {
        ModelStateWarning = new ModelStateDictionary();
    }

    public ModelStateDictionary ModelStateWarning { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

我现在遇到的问题是,当我到达我的视图代码时,这只是用于调试我失去了它的新类型这一事实,所以当我尝试将其强制转换并获取对我的新字典的访问权限时我没有快乐.

public partial class Index : ViewPage<PageViewData>
{
    protected override void SetViewData(ViewDataDictionary viewData)
    {
        base.SetViewData(viewData);
    }
}
Run Code Online (Sandbox Code Playgroud)

它在这里设置正确,但当我检查它消失的类型.

编辑:事实证明这是一种愚蠢的做事方式,请参阅下面的答案.

c# asp.net-mvc model

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

从应用程序内监视ASP.NET应用程序内存

我正在寻找应用程序本身监视其使用的内存量的方法,因此我可以每小时左右将其记录在日志文件中,并密切关注应用程序的使用情况.

它全部托管,因此我们可以对系统进行更改以查看正在发生的事情,因此解决方案必须来自应用程序代码.

我们将来可能会使用内存信息来影响缓存策略.

memory asp.net

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

是否可以将 Gitlab 用作 oauth 提供程序?

我知道可以使用Github 等外部提供商登录 Gitlab。但是,我想知道 Gitlab 的 oauth 是否可用于对我的应用程序的用户进行身份验证?

是否有我可以使用的 oauth 端点?

oauth-2.0 gitlab

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

在C#中完美打印DateTime值

我希望有人已经找到了这样做的方法,或者已经存在一个库.这是一件很好的事情,但目前暂不必要.

我正在寻找的功能就像反向的datejs.

谢谢,

西蒙.


谢谢,使用类似dddd示例的东西可能是一个良好的可用性开始.我对这个问题的思考越多,它就越依赖于所使用的值.我专门处理一系列带时间戳的文档版本,因此很有可能将它们聚集在一起.如果你在最后五分钟内保存了三次,今天不是很热.

如果我想出一些东西,我会与社区分享.

c# datetime pretty-print

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