我有一个Azure工作者角色和ASP.NET网站之间共享的类库.库中的方法需要从配置中提取值以确定它是否应该发送电子邮件.
在ASP.NET站点中,设置位于web.config中:
<add key="SendEmails" value="true"/>
Run Code Online (Sandbox Code Playgroud)
在Azure辅助角色中,它位于ServiceConfiguration.Cloud.cscfg中:
<Setting name="SendEmails" value="true"/>
Run Code Online (Sandbox Code Playgroud)
我想要做的是让我的类库能够访问任一配置设置,具体取决于它运行的环境.
我们将利用Azure Service Bus Queue来分派触发昂贵的数据库计算的消息.这些消息可以相当快速地生成,并且存在可以在一起生成相同消息的实例.在这种情况下,我们只想处理一次数据.
所以我们打算利用重复检测,但是我无法从文档或之前的问题中收集到一些细微差别.参数是:
我无法找到的是一种禁用"历史"重复检测但启用"等待"重复检测的方法 - 检测队列中等待的消息,但不检测已经处理过的消息.重复检测历史记录机制是仅对已完成的消息有效还是与等待相互消息相关的时间范围?
对于#3,我正在考虑通过在处理任何消息时添加5分钟的延迟来解决这个问题,这样如果在处理任何消息时创建一个消息,则有足够的时间来完成处理.
我有一个Windows Phone 7应用程序,名称中有一个空格.VS在整个应用程序中用下划线替换了空格,这对于命名空间等是好的,但是我无法弄清楚如何在应用程序名称中将其从设备开始菜单中删除.
我知道我可以使用投影映射两个对象类型LINQ,如下所示:
var destModel = from m in sourceModel
select new DestModelType {A = m.A, C = m.C, E = m.E}
Run Code Online (Sandbox Code Playgroud)
哪里
class SourceModelType
{
string A {get; set;}
string B {get; set;}
string C {get; set;}
string D {get; set;}
string E {get; set;}
}
class DestModelType
{
string A {get; set;}
string C {get; set;}
string E {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我想制作类似通用的东西来做这件事,我不知道具体处理我正在处理的两种类型.所以它会走"Dest"类型并匹配匹配的"Source"类型..这可能吗?另外,为了实现延迟执行,我希望它只返回一个IQueryable.
例如:
public IQueryable<TDest> ProjectionMap<TSource, TDest>(IQueryable<TSource> sourceModel)
{
// dynamically build the LINQ projection based on the properties in …Run Code Online (Sandbox Code Playgroud) 我正在尝试模拟MVC对象,HttpPostedFileWrapper以便我可以特别测试"ContentType"和"InputStream"属性.我设置我的模拟如此:
var mockPostedFile = new Mock<HttpPostedFile>();
var mockFileWrapper = new Mock<HttpPostedFileWrapper>(mockPostedFile);
mockFileWrapper.Setup(file => file.ContentType).Returns("application/pdf");
mockFileWrapper.Setup(file => file.InputStream).Returns(fileStream);
Run Code Online (Sandbox Code Playgroud)
但我在第一行得到了这个例外:
类型为mock必须是接口或抽象或非密封类.
如果我改变HttpPostedFile,HttpPostedFileBase我打电话时会收到此异常mockFileWrapper.Object
无法实例化类的代理:System.Web.HttpPostedFileWrapper.找不到与给定参数匹配的构造函数:Moq.Mock`1 [System.Web.HttpPostedFileBase]
有谁知道我能做些什么来解决这个问题?
我们的数据库将所有时间存储为 UTC,并且我们知道用户当前的时区,因此希望返回相对于该时区的时间。因此,我们希望将偏移量合并到 LINQ 投影中,如下所示:
var users = from u in this.Context.Users
select new UserWithCorrectedDate
{
Id = u.Id,
FirstName = u.FirstName,
LastName = u.LastName,
RegistrationDate = u.RegistrationDate.Value.AddHours(-5)
};
Run Code Online (Sandbox Code Playgroud)
当然,Linq2EF 无法将“ AddHours”转换为规范函数。还有其他方法可以做到这一点吗?
更新:
另一个想法是,如果时区偏移量作为另一列存储在数据库中,是否有办法让数据库执行计算(日期+偏移量)?
每个人都熟悉ASP.NET的默认错误处理程序.包含源错误的黄色框(发生错误的5行代码)和源文件(文件名和行号)如下所示:
Source Error:
Line 48: public ActionResult TriggerException()
Line 49: {
Line 50: throw new SystemException("This is a generated exception to test the global error handler.");
Line 51: }
Line 52:
Source File: c:\MyApp\Controllers\TestToolsController.cs Line: 50
Run Code Online (Sandbox Code Playgroud)
我正在构建一个自定义错误处理程序,并希望获得这些相同的信息,但它们不包含在异常对象中.有谁知道我如何检索这些项目.
int number = 5;
Type dynamicType = number.GetType(); // dynamic type is "int"
dynamicType x = (number as dynamicType);
Run Code Online (Sandbox Code Playgroud) 我在c#代码中遇到了一个模糊的运行时崩溃错误.从堆栈跟踪看来,有时很少会跳过覆盖,而是调用基类方法.伪代码看起来像这样:
public class Widget : Gear
{
public override string Spin()
{
return "crunch";
}
}
public class Gear
{
public virtual string Spin()
{
return "whirr";
}
}
Run Code Online (Sandbox Code Playgroud)
如果我这样称呼一千次,就像这样:
var widget = new Widget();
for (var i = 0; i < 1000; i++)
{
Console.WriteLine(widget.Spin());
}
Run Code Online (Sandbox Code Playgroud)
我可能会得到一次迭代来调用基类:
> ...
> crunch
> crunch
> crunch
> whirr
> crunch
> ...
Run Code Online (Sandbox Code Playgroud)
现在我的实际场景是使用Entity Framework,并且错误发生在EntityContext.SaveChanges()方法中,因为我的覆盖中的某些内容没有发生,并且堆栈跟踪显示覆盖被跳过,但上面的代码代表了症状.
我的问题是:(1)这可能吗?(2)可以预防吗?
我正在使用需要可换肤/可品牌的CSS构建网站.在技术方面,对于每个"品牌",我在数据库中有一组五个颜色值.
我想要做的是构建CSS文件,以便整个网站的颜色方案统一,颜色被重用,所以我可以在一个地方更改值,它会改变整个网站.这个概念看起来像这样:
.SiteBaseColor {color:sienna;}
p {font-size:50; 颜色:SiteBaseColor;}
有没有办法完成这样的事情?
我希望有一个索引脚本,我可以追加到并重新运行,因为新表添加到我的架构中.出于这个原因,我想跳过创建已经存在的索引,但我一直无法找到一种干净的方法来检测索引已经存在.我想做的是这样的:
IF OBJECT_ID(N'[dbo].[Users].[IDX_LastName]', '') IS NULL
CREATE INDEX [IDX_LastName] ON [dbo].[Users]
(
[LastName] ASC
)
Run Code Online (Sandbox Code Playgroud)