我刚刚开始使用Log4Net ...我现在想要发送一封电子邮件,其中包含附加或直接邮寄的完整日志.使用SmtpAppender的问题在于它需要一个未知的bufferSize,因为它应该发送邮件,无论是充满错误还是信息.
更新:我的配置文件
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="ebb@mail.com" />
<from value="ebb@mail.com" />
<subject value="Backup Application - Log" />
<smtpHost value="mailserver" />
<authentication value="1" />
<username value="userName" />
<password value="mypw" />
<port value ="25"/>
<lossy value="true" />
<bufferSize value="500" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="ALL"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%timestamp [%thread] %-5level %logger – %message%newline" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud) 我有这个奇怪的问题...在我的代码中我是否将IsRequired的值设置为false或true然后它保持为false ..但是如果我输入DefaultValue它有效吗?
非工作代码是:
public class FtpSettingsSection : ConfigurationSection
{
[ConfigurationProperty("host", IsRequired = true)]
public HostElement Host
{
get { return (HostElement)this["host"]; }
set { this["host"] = value; }
}
}
public class HostElement : ConfigurationElement
{
[ConfigurationProperty("URL", IsRequired = true)]
public string URL
{
get { return (string)this["URL"]; }
set { this["URL"] = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
而工作代码是:
public class FtpSettingsSection : ConfigurationSection
{
[ConfigurationProperty("host", DefaultValue = "", IsRequired = true)]
public HostElement Host
{
get { return (HostElement)this["host"]; } …Run Code Online (Sandbox Code Playgroud) 人们对我大吼大叫,我应该总是使用存储库模式,我已经做了很长一段时间......现在我想知道这个模式是否有任何合适的替代方案?
我不知道窗口挂钩如何在"系统级"工作.MSDN只是简单地触及了正在发生的事情:
钩子是系统消息处理机制中的一个点,应用程序可以安装子程序来监视系统中的消息流量,并在它们到达目标窗口过程之前处理某些类型的消息.
我最好的猜测如下:

在将每条消息添加到窗口的消息队列之前,它将首先将消息发送到全局/本地挂钩,这可能会执行某些操作,具体取决于它们的挂钩过程.在所有全局挂钩和本地挂钩之后,消息最终被添加到窗口消息队列中.
但是,MSDN说,对于某些类型的挂钩的,它会监视events,notifications等等.
一个例子是WH_MOUSE_LL钩子:
安装一个监视低级鼠标输入事件的钩子过程.有关更多信息,请参阅LowLevelMouseProc挂接过程.
当他们说events,我们是在谈论窗口消息,还是他们意味着什么呢?
我错了吗?
我正在使用以下脚本进行调用,该脚本在单击锚标记时调用
function GetToken(videoId) {
debugger;
var json = $.getJSON("/Vod/RequestAccessToken/"+videoId, function(result){
alert("token recieved: " + result.token);
});
}
Run Code Online (Sandbox Code Playgroud)
在服务器应用程序中,我接收到调用,因此我知道它是一个有效的URL,但是没有调用回调.如果我通过jquery代码(f11/f10)设置回调被调用?? !!!?
服务器以类的形式从MVC应用程序返回结果
// function called
public JsonResult RequestAccessToken(int id)
{
Token t = new Token();
t.MasterId = Guid.NewGuid();
var result = new TokenResult(t.MasterId);
return this.Json(result, JsonRequestBehavior.AllowGet);
}
// class returned
public class TokenResult
{
public TokenResult() { }
public TokenResult(Guid g) { token = g.ToString(); }
public string token = null;
}
Run Code Online (Sandbox Code Playgroud)
当我通过浏览器result =访问url时
{
"token":"c877453e-739d-4883-9310-91ddd707d6af"
}
Run Code Online (Sandbox Code Playgroud) 我和Dealer谁之间有一对多的关系Cars.
我正在尝试将用于EF的C#代码转换为F#...问题只是在我的F#代码中它可以很好地获得经销商,但它不会为该经销商...它只是返回null,但在它的C#版本有效吗?
我的代码:
C#版本
public class Dealer
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Car> Cars { get; set; }
public Dealer()
{
Cars = new List<Car>();
}
}
public class Car
{
public int ID { get; set; }
public string CarName { get; set; }
public Dealer Dealer { get; set; }
public int DealerId { get; set; }
public Car()
{
Dealer = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用客户端验证来实现自定义验证属性.
我的属性如下:
public class FileSize : ValidationAttribute, IClientValidatable
{
private readonly int _size;
public FileSize(int size)
{
ErrorMessage = "Invalid size.";
_size = size;
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
{
var rule = new ModelClientValidationRule
{
ValidationType = "fileSize",
ErrorMessage = ErrorMessage
};
rule.ValidationParameters["size"] = _size;
yield return rule;
}
public override bool IsValid(object value)
{
return ((HttpPostedFileBase) value).ContentLength < _size;
}
}
Run Code Online (Sandbox Code Playgroud)
并且脚本在我的视图中包含如下内容:
<script src="@Url.Content("~/Scripts/jquery-1.4.4.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
<script type="text/javascript">
$(function () { …Run Code Online (Sandbox Code Playgroud) 有可能以某种方式为度量类型创建一个pow函数吗?f#中的pow函数仅int作为参数,然后Math类中的pow函数需要float- 但是剂量允许float<cm>.
我首先想到的是:
let rec myPow(x:float<cm>,y:int) =
if y = 0 then x
else myPow(x*x, y - 1)
Run Code Online (Sandbox Code Playgroud)
可能会解决,但显而易见的是,每次遇到else线时都会改变返回类型.
有什么建议?
使用下面的代码,计时器只会触发一次.我错过了什么?
public static List<string> Test = new List<string> { "TEST1", "TEST2" };
public static void Start()
{
var t = new System.Threading.Timer(o =>
{
foreach (var item in Test)
{
Console.WriteLine("Say hello!");
}
}, null, 0, 1250);
}
Run Code Online (Sandbox Code Playgroud) 在阅读了Dispatcher该类的文档之后,我意识到它也可以用于非UI排队操作.
那么Dispatcher班级实际上是如何运作的?我知道这一点,它的主要工作是将操作排入特定线程 - 但它如何将这些操作"发送"到线程?线程如何"获得"这些行为?
我最好的猜测是每个线程都有某种"线程队列",但我再也不知道了.