所以我有一个自定义跟踪监听器,它开始它的生命如下:
http://www.codeproject.com/Articles/30956/A-Rolling-XmlWriterTraceListener
我已将其修改为更像Log4Net RollingFileAppender(请参阅:http://logging.apache.org/log4net/release/sdk/log4net.Appender.RollingFileAppender.html)
当我运行代码时,我发现它没有从配置文件中的自定义属性设置属性/字段值.
在运行时分析对象会发现Attributes属性(this.Attributes)不包含任何内容.
有什么想法我会解决这个问题吗?
我应该手动填充这些还是什么?
好的,这是一个代码示例:
[HostProtection(Synchronization = true)]
public class RollingXmlWriterTraceListener : XmlWriterTraceListener
{
public RollingXmlWriterTraceListener(string filename)
: base(filename)
{
_basicTraceFileName = filename;
LoadAttributes();
}
Run Code Online (Sandbox Code Playgroud)
在LoadAttributes方法中,我然后做...
if (Attributes.ContainsKey("maxTraceFileCount"))
{
string attributeValue = Attributes["maxTraceFileCount"];
Run Code Online (Sandbox Code Playgroud)
问题是"属性"从不包含任何内容.该类使用包含属性的配置信息从框架代码实例化...
<sharedListeners>
<add type="emedia.Common.Wcf.RollingXmlWriterTraceListener, emedia.Common.Wcf"
name="System.ServiceModel.XmlTrace.Listener"
traceOutputOptions="None"
initializeData="C:\Logs\MyTraceFileName.svclog"
MaxTraceFileSize="1048576"
MaxTraceFileCount="10"
/>
</sharedListeners>
Run Code Online (Sandbox Code Playgroud)
编辑2:
XmlWriterTraceListener类是.Net的一部分,它是继承Attributes属性的基类.
在配置中我应该能够指定任何属性然后在代码中执行类似的操作...
var attValue = Attributes["something"];
Run Code Online (Sandbox Code Playgroud)
...但由于某种原因,它返回null(属性不在集合中).
鉴于这在我的应用程序启动...
app.Use((context, next) =>
{
return next.Invoke();
}).UseStageMarker(PipelineStage.PostAuthenticate);
app.Use((context, next) =>
{
return next.Invoke();
}).UseStageMarker(PipelineStage.Authenticate);
Run Code Online (Sandbox Code Playgroud)
...为什么PostAuthenticate代码在Authenticate代码之前执行?
我并不是说"为什么第一个app.use在第二个app.use之前被调用"我的意思是:为什么第一个调用会在第二个调用之前被调用,因为第二个应该在请求管道中更早发生?
编辑
与此问题相关:如何在此代码中获取Windows标识?
我昨天发布了这个...
如果我将启动配置方法的第一行更改为...
var config = GlobalConfiguration.Configuration ?? new HttpConfiguration();
Run Code Online (Sandbox Code Playgroud)
然后我在导航到根目录时遇到此错误...
'DelegatingHandler'列表无效,因为'CorsMessageHandler'的属性'InnerHandler'不为null.参数名称:处理程序
我发现一些信息点缀在一起,表明"HttpServer"的基本实现有一个与批处理相关的错误,而且微软已经表示他们实现了一些新的批处理框架,因此无法修复它,博客提供了这段代码样本来修复bug ...
public class BatchServer : HttpServer
{
private readonly HttpConfiguration _config;
public BatchServer(HttpConfiguration configuration)
: base(configuration)
{
_config = configuration;
}
protected override void Initialize()
{
var firstInPipeline = _config.MessageHandlers.FirstOrDefault();
if (firstInPipeline != null && firstInPipeline.InnerHandler != null)
{
InnerHandler = firstInPipeline;
}
else
{
base.Initialize();
}
}
}
Run Code Online (Sandbox Code Playgroud)
显然这似乎并没有解决我的问题.
所以,我陷入了这两个错误之间,不知道如何离开.
我从一些C#和Excel中得到了一些非常奇怪的行为......
自己完成了数学运算后,我相信excel可能会给出正确的答案,但我的数学不是很好,所以可能是.Net编译器知道我不知道的事情.
所以我们走了......
以excel表格的形式给出这些数据:
total sale val days irr
2431.65 2424.56 21 5.01
Run Code Online (Sandbox Code Playgroud)
irr(单元格D2)的公式如下:
=ROUND(100 * ((A2 - B2) / B2) * (360 / C2), 2)
Run Code Online (Sandbox Code Playgroud)
当我运行这个C#时,我得到结果4.97 ...
var totalIncludingTax = 2431.65M;
var saleValue = 2424.56M;
var daysRemaining = 21;
var result = Math.Round(100.0m * ((totalIncludingTax - saleValue) / saleValue) * (360 / daysRemaining), 2);
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释我如何强迫C#/ .Net和Excel同意/如何重写这个公式以便两者同意?
我正在使用Bootstrap 4处理表单,我想编辑/更改箭头选择元素的样式,从第一个版本到第二个版本,如下所示.
我尝试了不同的方式(如所需的社区引用中所示)来编辑箭头,但我没有成功.
有人可以通过解释我如何达到预期的结果来帮助我吗?
请在下面找到我的HTML问题示例.
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<meta content="Description" name="description">
<meta content="index,follow" name="robots">
<link href="/images/myicon.png" rel="icon" type="image/png">
<title>TITLE HERE</title>
<!--CSS-->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="form-group">
<label for="exampleSelect1">Example select</label>
<select class="form-control" id="exampleSelect1">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
</body>
Run Code Online (Sandbox Code Playgroud) 因为 \r\n 是正则表达式中的“特殊”字符,所以我在确定我实际需要在表达式中放入的内容时遇到问题。
基本上我有一个看起来像……的字符串
bla\r\nbla\r\nbla
Run Code Online (Sandbox Code Playgroud)
..我想把它改成......
bla
bla
bla
Run Code Online (Sandbox Code Playgroud)
...使用正则表达式。
有任何想法吗?
我们有一个由不再存在的公司制作的控件.由于页面加载的一些奇怪的原因,它现在已经开始向页面呈现这样的内容:
<script type="text/javascript">
alert('Your license has expired!')
</script>
Run Code Online (Sandbox Code Playgroud)
由于公司不再存在,我们无法获得支持,控制也非常复杂,并且运行在一些无法快速替换的遗留代码中,因此简单地重写页面也不是一个选项(尚未).
我暂时需要做的是在对象呈现之前从页面中删除对象,或者通过某些脚本自动关闭对话框...
有任何想法吗?
此堆栈跟踪是由于"提供程序名称不能为null或为空"的错误导致的.
[ArgumentException:提供程序名称不能为null或为空.] System.Web.Security.Roles.Initialize()+ 2230205 System.Web.Security.RoleManagerModule.OnLeave(Object source,EventArgs eventArgs)+68 System.Web.SyncEventExecutionStep.System .Web.HttpApplication.IExecutionStep.Execute()+ 148 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&completedSynchronously)+75
本质上我正在创建我自己的自定义角色提供程序,它继承了SqlRoleProvider类,我正在成功调用初始化并确认它成功完成了我的代码中的所有内容但是.Net中的某些内容显然没有被正确地初始化为"角色"对象我不能继承是让我有些头痛......
有任何想法吗?
好的,我的解决方案是分层的,这意味着我需要通过业务对象层提供安全性......为了做到这一点,我定义了以下内容:
---编辑1 ---
我的代码:
在主要装配中:
public class C20RoleProvider : RoleProvider
{
private C20SqlRoleDataProvider prov;
C20RoleProvider()
{
// this code is actually using some reflection based on config files
// i have simplified this to illustrate the problem im having ...
prov = new C20SqlRoleDataProvider();
}
public override void Initialize(string name, NameValueCollection config)
{
prov.Initialize(name, config);
}
}
Run Code Online (Sandbox Code Playgroud)
在提供者组装中:
public class C20SqlRoleDataProvider : SqlRoleProvider
{
// code …Run Code Online (Sandbox Code Playgroud) 如何使用LINQ的Contains()或Any()函数检查下面显示的数组或列表是否包含给定值?
这是我的代码:
int[] array3 = { 1, 2, 3, 4, 5, 6 };
List<int> tyest = array3.ToList<int>();
if (tyest.Any(2)) {
}
Run Code Online (Sandbox Code Playgroud) 试图做一些非常明显的事情,但它有点没有任何意义/不适合我......
这个想法很简单,当文件加载时$(document).ready()获取所有输入元素,其中包含属性type ="text"并添加css类"textbox"...
<script type="text/javascript">
$(document).ready(function () {
var textboxes = $(":input [type = 'text']");
textboxes.each().addClass("textbox");
});
</script>
Run Code Online (Sandbox Code Playgroud)
任何想法为什么这不起作用?...
编辑:
哇..还有很多东西要学习jquery-isms ...开始喜欢jquery虽然:)它的简单真的有诀窍.
c# ×4
javascript ×3
css ×2
jquery ×2
.net ×1
alert ×1
any ×1
arrays ×1
asp.net ×1
bootstrap-4 ×1
cors ×1
excel ×1
html ×1
httphandler ×1
legacy-code ×1
list ×1
math ×1
owin ×1
pipeline ×1
regex ×1
roleprovider ×1
trace ×1