我有一些我想要注册的WCF服务的服务行为; 没有配置.我想我每次都可以通过使用泛型来跳过创建一个BehaviorExtensionElement后代:
public class SimpleBehaviorExtensionElement<TBehavior> : BehaviorExtensionElement
where TBehavior: new()
{
protected override object CreateBehavior()
{
return new TBehavior();
}
public override Type BehaviorType
{
get { return typeof(TBehavior); }
}
}
Run Code Online (Sandbox Code Playgroud)
在Web.config中:
<behaviorExtensions>
<add name="myBehavior2"
type="WcfService1.SimpleBehaviorExtensionElement`1[[WcfService1.MyBehavior,
WcfService1]], WcfService1"/>
</behaviorExtensions>
Run Code Online (Sandbox Code Playgroud)
WcfService1.MyBehavior存在,实现了IServiceBehavior,并且已经过测试.
但是当我在配置文件的行为部分中引用<myBehavior2 />时,我得到:
为system.serviceModel/behavior创建配置节处理程序时发生错误:无法将扩展元素"myBehavior2"添加到此元素.验证扩展是否已在system.serviceModel/extensions/behaviorExtensions的扩展集合中注册.参数名称:element
如果我创建一个非泛型的BehaviorExtensionElement后代,我可以做的一切都有效.但现在它让我烦恼.;)
我们在下一个导出模式(静态 HTML 导出)中使用 Next.Js ,并且我们需要高级动态路由。
\n我们的路线将类似于/[config1]/[config2]/[optionalConfig?]/page,其中一段是可选的,并且页面名称是固定的。例如a/b/c/page1或a1/b1/page2. 页面需要配置段数据才能呈现。
我还没有找到任何方法来使用内置路由来做到这一点。我可以/pages/[config1]/[config2]/page1.tsx,但是那个可选部分似乎是一个问题。请注意,自定义服务器似乎不是一个选项,因为由于其他限制,我们必须使用下一个导出模式。
注意:我们不知道构建时的路径;它们代表我们运行时配置的一部分。这必须使用客户端路由。(我们确实知道页面的有限集 - 例如 page1 ... page10 - 但到这些页面的路由会有所不同。)
\n我尝试切换到 React Router,设置useFileSystemPublicRoutes: false路由并将其添加到pages/_app.tsx(自定义应用程序)。这几乎可以工作,但我在控制台中看到许多 404on-demand-entries-utils.js以及一些“检测到可能的 EventEmitter 内存泄漏”警告(在开发模式下)。
有效的解决方案(必须 100% 在客户端工作):
\n更新
\n我们也许能够消除可选部分的要求。但是,看来我们必须实现getStaticPaths并指定所有路由。例如:
页面/[config]/foo.tsx
\nexport …Run Code Online (Sandbox Code Playgroud) 我试图从4个数字中随机选择.我需要比较这两种算法的概率.
1#
int a = random.Next(0, 4);
if (a = 0)
statement1
if (a = 1)
statement2
if (a = 2)
statement3
if (a = 3)
statement4
Run Code Online (Sandbox Code Playgroud)
2#
int a = random.Next(0, 1000)
if (a < 250)
statement1
if (a >= 250 && a < 500)
statement2
if (a >= 500 && a < 750)
statement3
if (a >= 750)
statement4
Run Code Online (Sandbox Code Playgroud)
如果我认为它是相同的,我是对的吗?第一个代码中statement1的概率是1/4,第二个代码中的概率是250/1000,所以它也是1/4.但有人告诉我,当我使用更大范围的随机数时,如代码2#,它在统计上更准确.我已经制作了多次重复这些代码的项目,但我不确定它能给我看一些结果.
嗨,我想序列化
FileStream fileStream = new FileStream("batches.xml", FileMode.Open);
XmlSerializer serializer = new XmlSerializer(typeof(List<Batche>));
List<Batche> listOfBatches = new List<Batche>();
[Serializable]
[XmlRoot("Batch")]
public class Batche
{
[XmlElement("Title")]
public string Title
{
get;set;
}
[XmlArray("ListOfLinks"),XmlArrayItem("Link",Type = typeof(Link))]
public List<Link> Links
{
get;set;
}
}
[Serializable]
[XmlRoot("Link")]
public class Link
{
[XmlElement("Uri")]
public Uri Uri
{
get;
set;
}
[XmlElement("Status")]
public string Status
{
get;
set;
}
}
Run Code Online (Sandbox Code Playgroud)
获取以下错误:有一个错误反映了类型'System.Collections.Generic.List`1 [DownloadTRON.Entities.Batche]'.
自从过去4个小时以来一直在尝试这个,任何身体都可以指出我做错了什么!
关心普拉文
.NET DateTime.ToLocalTime方法的文档指出:
在Windows XP系统上,ToLocalTime方法仅在从UTC转换为本地时将识别当前调整规则.因此,在当前调整规则生效之前的时段的转换可能无法准确反映UTC与本地时间之间的差异.
我正在开发Windows 7,但部署到混合环境.如何提供与ToLocalTime的Windows 7行为相匹配的一致,正确的实现?
编辑
我跑了一个测试:
static void Main()
{
// 8 AM in July, UTC. That would have been DST, so 3 AM CDT.
var dstDate = new DateTime(2010, 7, 1, 8, 0, 0, DateTimeKind.Utc);
// 8 AM in December, UTC. Not DST, so 2 AM CST.
var nonDstDate = new DateTime(2010, 12, 1, 8, 0, 0, DateTimeKind.Utc);
Log("DST Date ToLocalTime: " + dstDate.ToLocalTime());
Log("DST Date ConvertTimeFromUtc: " + ConvertTimeFromUtc(dstDate));
Log("Expected: 3 AM July 1 …Run Code Online (Sandbox Code Playgroud) 我正在考虑限制使用C#的dynamic关键字.我的初始时间试验令人惊讶 - 100,000次迭代的性能下降不到一秒(可能是由于DLR缓存).
但是,我无法访问内存分析器,Eric Lippert写道:
然后它启动DLR [...] DLR然后启动一个特殊版本的C#编译器......
这是什么内存占用,并在动态代码被垃圾收集时卸载?
为了在c#中创建干净的解耦代码,我希望得到一些关于使用动态参数来构造对象的反馈.通常我相信你会创建一个接口并使用接口作为合同,但是你必须为你所有的类创建接口,我觉得它们有点蹩脚......
所以,我的问题是做这样的事情的利弊是什么:
class Class1
{
public string Description { get; set; }
public string Name { get; set; }
public Class1(dynamic obj)
{
Name = obj.Name;
Description = obj.Description;
}
}
Run Code Online (Sandbox Code Playgroud)
VS
class Class1
{
public string Description { get; set; }
public string Name { get; set; }
public Class1(IClass1 obj)
{
Name = obj.Name;
Description = obj.Description;
}
}
Run Code Online (Sandbox Code Playgroud) 我弹簧安全登录表单我们有以下表格
<form name='f' action='/j_spring_security_check' method='POST'>
<table>
<tr><td>User:</td><td><input type='text' name='j_username' value=''></td></tr>
<tr><td>Password:</td><td><input type='password' name='j_password'/></td></tr>
<tr><td colspan='2'><input name="submit" type="submit"/></td></tr>
<tr><td colspan='2'><input name="reset" type="reset"/></td></tr>
</table>
</form>
Run Code Online (Sandbox Code Playgroud)
我知道如何修改此表单上的action属性(使用 login-processing-url="/login")我的问题是如何更改j_username和j_password标签名称,是用户名和密码?
我知道这听起来很愚蠢,但是对于CA1709,我们应该忽略这个错误,只是做微软所做的事情(使用Db作为数据库的首字母缩写)?
只是想知道那里的人在做什么.对我来说,DB当微软全面使用它时,使用它似乎很愚蠢Db.
如果我想要一个空的枚举,我可以打电话Enumerable.Empty<T>().但是如果我想将标量类型转换为枚举呢?
通常我会写入new List<string> {myString}传递myString给接受的函数IEnumerable<string>.是否有更多的LINQ-y方式?
c# ×6
c#-4.0 ×3
.net ×2
dynamic ×2
datetime ×1
decoupling ×1
forms ×1
fxcop ×1
generics ×1
linq ×1
list ×1
memory ×1
next.js ×1
probability ×1
random ×1
react-router ×1
statistics ×1
timezone ×1
url-routing ×1
utc ×1
wcf ×1
windows-xp ×1