首先,我发现你可以捕获它并将其记录在catch中,但这不会发送电子邮件.然后我发现了使用这门Error Signal课程.这有用,但是从阅读中看不出来的是,它将错误视为正常,因此当我发出错误信号时,它仍会转到自定义错误页面,我不希望这种情况发生.
我想要做的是捕获该错误,记录它,发送电子邮件,但保持在页面上发生错误,以便我可以提供特殊反馈.我不希望它转到自定义错误页面.
我怎么能做到这一点?
编辑:这是我拥有的,它将我重定向到自定义错误页面.
Try
smtpClient.Send(mailMessage)
Catch smtpEx As SmtpException
errorSignal.FromCurrentContext().Raise(smtpEx)
Catch ex As Exception
errorSignal.FromCurrentContext().Raise(ex)
End Try
Run Code Online (Sandbox Code Playgroud)
编辑:发布涉及Elmah的web.config部分(除了连接字符串hah)并且我的Global.asax文件中没有涉及Elmah的内容.
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
</configSections>
<elmah>
<security allowRemoteAccess="1" />
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="Elmah.Sql" applicationName="Web Main" />
<errorMail from="xxx" to="xxx" cc="xxx" subject="main website error" async="true" smtpPort="25" smtpServer="xxx" userName="xxx" password="xxx" />
<errorFilter>
<test>
<and>
<equal binding="HttpStatusCode" …Run Code Online (Sandbox Code Playgroud) 我正在为实体框架编写一个通用存储库,并对这些调用之间的区别感到困惑:
ObjectContext.CreateObjectSet<T>
ObjectContext.CreateQuery<T>
DbContext.Set<T>
Run Code Online (Sandbox Code Playgroud)
我想要一个通用的存储库,它既支持从.edmx文件生成的上下文,也支持代码第一个DbContext,所以我有这个:
public abstract class EntityRepository<TClass>
where TClass : class, new()
{
//private readonly TContext _context;
private readonly ObjectSet<TClass> _objectSet;
protected EntityRepository(IObjectContextAdapter context)
{
_objectSet = context.ObjectContext.CreateObjectSet<TClass>();
}
protected EntityRepository(ObjectContext context)
{
_objectSet = context.CreateObjectSet<TClass>();
}
public ObjectSet<TClass> Query()
{
return _objectSet;
}
}
Run Code Online (Sandbox Code Playgroud)
在我在网上看过的例子中,我看过所有使用过的3个,它们之间的实际差异是什么?一个更好的表现明智吗?我知道你可以使用所有3种方法针对上下文编写LINQ查询.
我有以下CSS将PDF图标添加到链接到PDF的任何链接:
a.pdf-link:after { padding-left: 2px; content: url(../images/icon-pdf-link.gif);}
Run Code Online (Sandbox Code Playgroud)
是否可以在此图像上添加一些title和alt属性?我希望它能让用户将鼠标悬停在图标上并获得一些文本,例如"这链接到.pdf文件."我通常只是将标题属性添加到其中,但无法弄清楚如果我能通过这种方法做到这一点.
这些类似的问题:操作方法:使用Silverlight中的字符串加载从引用的程序集在运行时类型,在引用的程序集的GetType上一类失败,但是没有答案的作品.
我有一个MVC项目,它从包含普通类型作为字符串的数据库中提取数据.这些类型位于引用的程序集中,而不是MVC项目中.
因此,例如,假设我的Referenced Assembly Name是MyFramework普通类型名称Car,完整类型名称可以是MyFramework.Cars.Car或者MyFramework.Vehicles.Cars.Car或其他一些变体.我只有引用的程序集名称和普通的类名称作为字符串.无论完整的类型名称如何,我如何获得类型?
最后,我可以在引用的程序集中编写一个函数来调用GetType()并在MvC项目中使用它,这样我可以放弃包括程序集名称吗?我想删除已知的程序集名称,所以我想我可以在引用的程序集中编写一个Util,如:
namespace MyFramework //the referenced assembly
{
public static class TypeUtil
{
public static Type GetFrameworkType(string typeName)
{
return Type.GetType(typeName);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在我的MVC项目中,我可以调用它而不需要将程序集作为字符串名称.这可能还是我总是需要汇编名称?
我有一个以这种格式存储的排序列表:
public class ReportSort
{
public ListSortDirection SortDirection { get; set; }
public string Member { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我需要把它变成类型的lambda表达式 Action<DataSourceSortDescriptorFactory<TModel>>
假设我有以下报告排序集合:
new ReportSort(ListSortDirection.Ascending, "LastName"),
new ReportSort(ListSortDirection.Ascending, "FirstName"),
Run Code Online (Sandbox Code Playgroud)
我需要将它转换为这样的语句,如下所示:
.Sort(sort => {
sort.Add("LastName").Ascending();
sort.Add("FirstName").Ascending();
})
Run Code Online (Sandbox Code Playgroud)
排序方法签名是:
public virtual TDataSourceBuilder Sort(Action<DataSourceSortDescriptorFactory<TModel>> configurator)
Run Code Online (Sandbox Code Playgroud)
所以我现在有一些方法:
public static Action<DataSourceSortDescriptorFactory<TModel>> ToGridSortsFromReportSorts<TModel>(List<ReportSort> sorts) where TModel : class
{
Action<DataSourceSortDescriptorFactory<TModel>> expression;
//stuff I don't know how to do
return expression;
}
Run Code Online (Sandbox Code Playgroud)
......我不知道该怎么办
编辑:答案是:
var expression = new Action<DataSourceSortDescriptorFactory<TModel>>(x =>
{
foreach (var sort in sorts)
{ …Run Code Online (Sandbox Code Playgroud) 在我的页面上呈现搜索结果后,我基本上需要运行一些jQuery代码.我可以使用v1代码:
<div id="cse" style="width: 100%;">Loading</div>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
google.load('search', '1', {language : 'en', style : google.loader.themes.V2_DEFAULT});
google.setOnLoadCallback(function() {
var customSearchOptions = {};
var orderByOptions = {};
orderByOptions['keys'] = [{label: 'Relevance', key: ''},{label: 'Date', key: 'date'}];
customSearchOptions['enableOrderBy'] = true;
customSearchOptions['orderByOptions'] = orderByOptions; var customSearchControl = new google.search.CustomSearchControl(
'zzzzzzzzzzzz', customSearchOptions);
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
var options = new google.search.DrawOptions();
options.setAutoComplete(true);
customSearchControl.setAutoCompletionId('zzzzzz:zzzzzzz+qptype:3');
options.enableSearchResultsOnly();
customSearchControl.draw('cse', options);
function parseParamsFromUrl() {
var params = {};
var parts = window.location.search.substr(1).split('\x26');
for (var i = 0; i < parts.length; …Run Code Online (Sandbox Code Playgroud) 我试图将一个unicode字符串从Excel文件转换为uniqueidentifier.网上已有答案看起来非常简单:
我见过这篇文章:SSIS包中的数据转换问题 - 文本到GUID
和这篇文章:http://social.msdn.microsoft.com/Forums/sqlserver/en-US/6ce5b4d2-913a-40f1-9797-105783181f5e/ssis-variable-that-should-contain-uniqueidentifier
但是在将数据导入SQL Server 2012时,这在Visual Studio 2012中的SSIS 2012中不起作用,运行时会出现典型的转换错误.
在Excel文件中,Guid(作为字符串)以这种格式存储:
00bce79b-6c7b-427F-9711-17c19475f6e4
没有花括号或引号.
当我为应用程序编写API时,我总是遵循一个看似如下的设置模式(谁不是!?):
User (Folder/Namespace)
User.cs
UserDao.cs
UserDaoFactory.cs
UserService.cs
UserServiceFactory.cs
Run Code Online (Sandbox Code Playgroud)
我知道Resharper有我已经使用的文件模板,但如果我不必单独添加每个文件,当你在一个应用程序中使用超过30个实体时,这将非常繁琐.如果你不能用resharper做到这一点,那么无论如何使用Visual Studio制作某种宏来执行你的resharper文件模板?
好吧,所以最近我一直在阅读ninject,但是我很难理解是什么让它更好地解释为什么他们在wiki页面上提到'穷人'的DI.可悲的是我在维基上浏览了所有页面但仍然没有得到它=(.
通常我会将我的服务类包装在处理DI的工厂模式中,如下所示:
public static class SomeTypeServiceFactory
{
public static SomeTypeService GetService()
{
SomeTypeRepository someTypeRepository = new SomeTypeRepository();
return = new SomeTypeService(someTypeRepository);
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这似乎很像模块:
public class WarriorModule : NinjectModule {
public override void Load() {
Bind<IWeapon>().To<Sword>();
Bind<Samurai>().ToSelf().InSingletonScope();
}
}
Run Code Online (Sandbox Code Playgroud)
每个类都有它的相关模块,你将它的构造函数绑定到一个具体的实现.虽然ninject代码少了1行,但我没有看到优势,无论何时添加/删除构造函数或更改接口构造函数的实现,您都必须更改模块,就像在工厂中一样没有?所以没有看到这里的优势.
然后我想我可以想出一个基于通用约定的工厂,如下所示:
public static TServiceClass GetService<TServiceClass>()
where TServiceClass : class
{
TServiceClass serviceClass = null;
string repositoryName = typeof(TServiceClass).ToString().Replace("Service", "Repository");
Type repositoryType = Type.GetType(repositoryName);
if (repositoryType != null)
{
object repository = Activator.CreateInstance(repositoryType);
serviceClass = (TServiceClass)Activator.CreateInstance(typeof (TServiceClass), new[]{repository});
}
return serviceClass; …Run Code Online (Sandbox Code Playgroud) 我有一个类库项目,其中包含一个DbContext类,如下所示:
public DbContext() : base(ContextInitializer.GetConnectionStringName())
{
Run Code Online (Sandbox Code Playgroud)
这样,当用户(其他程序员)可以在他们在任何项目中选择的任何数据库上使用我的API和实体时,可以在他们的应用程序启动时设置它,然后设置连接字符串.现在我正在尝试在我的类库中生成迁移配置.我试过了:
Enable-Migrations -ProjectName "ClassLibraryProject" -ContextTypeName "MyDbContext" -StartUpProjectName "MyWebApp" -ConnectionString "MyConnectionString" -ConnectionProviderName "System.Data.SqlClient"
Run Code Online (Sandbox Code Playgroud)
根据这里遇到相同错误的其他答案,它没有帮助.我还是得到:
异常调用 "SetData的" 与 "2" 的参数(一个或多个):在装配"类型 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject'"Microsoft.VisualStudio.ProjectSystem.VS.Implementation,版本= 14.1. 0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'未标记为可序列化." 在C:\ Users\me.nuget\packages\EntityFramework\_6.1.3\tools\EntityFramework.psm1:718 char:5 + $ domain.SetData('project',$ project)+ ~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:SerializationException
异常调用 "SetData的" 与 "2" 的参数(一个或多个):在装配"类型 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject'"Microsoft.VisualStudio.ProjectSystem.VS.Implementation,版本= 14.1. 0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'未标记为可序列化." 在C:\ Users\me.nuget\packages\EntityFramework\_6.1.3\tools\EntityFramework.psm1:719 char:5 + $ domain.SetData('contextProject',$ contextProject)+ ~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +类别信息:未指定:(:) [],MethodInvocationException + FullyQualifiedErrorId:SerializationException
异常调用 "SetData的" 与 "2" 的参数(一个或多个):在装配"类型 'Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProject'"Microsoft.VisualStudio.ProjectSystem.VS.Implementation,版本= 14.1. 0.0,Culture = neutral,PublicKeyToken …
c# entity-framework ef-migrations entity-framework-6 asp.net-core
c# ×5
.net ×2
alt ×1
asp.net ×1
asp.net-core ×1
css ×1
datacontext ×1
elmah ×1
excel ×1
generics ×1
gettype ×1
javascript ×1
jquery ×1
kendo-ui-mvc ×1
lambda ×1
linq ×1
macros ×1
ninject ×1
reflection ×1
resharper ×1
ssis ×1
templates ×1
title ×1
vb.net ×1