小编Tru*_*ill的帖子

通用的BehaviorExtensionElement是否可行?

我有一些我想要注册的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后代,我可以做的一切都有效.但现在它让我烦恼.;)

c# generics configuration wcf

6
推荐指数
1
解决办法
1226
查看次数

具有下一个导出模式的动态路由

我们在下一个导出模式(静态 HTML 导出)中使用 Next.Js ,并且我们需要高级动态路由。

\n

我们的路线将类似于/[config1]/[config2]/[optionalConfig?]/page,其中一段是可选的,并且页面名称是固定的。例如a/b/c/page1a1/b1/page2. 页面需要配置段数据才能呈现。

\n

我还没有找到任何方法来使用内置路由来做到这一点。我可以/pages/[config1]/[config2]/page1.tsx,但是那个可选部分似乎是一个问题。请注意,自定义服务器似乎不是一个选项,因为由于其他限制,我们必须使用下一个导出模式。

\n

注意:我们不知道构建时的路径;它们代表我们运行时配置的一部分。这必须使用客户端路由。(我们确实知道页面的有限集 - 例如 page1 ... page10 - 但到这些页面的路由会有所不同。)

\n

我尝试切换到 React Router,设置useFileSystemPublicRoutes: false路由并将其添加到pages/_app.tsx(自定义应用程序)。这几乎可以工作,但我在控制台中看到许多 404on-demand-entries-utils.js以及一些“检测到可能的 EventEmitter 内存泄漏”警告(在开发模式下)。

\n

有效的解决方案(必须 100% 在客户端工作):

\n
    \n
  • 使用内置路由来做到这一点的方法
  • \n
  • 将 React Router 与 Next.Js 集成的示例
  • \n
  • 替代库(我看过下一个路线,但已经三年没有更新了)
  • \n
\n

更新

\n

我们也许能够消除可选部分的要求。但是,看来我们必须实现getStaticPaths并指定所有路由。例如:

\n

页面/[config]/foo.tsx

\n
export …
Run Code Online (Sandbox Code Playgroud)

url-routing react-router next.js static-site-generation

6
推荐指数
1
解决办法
4645
查看次数

随机数概率

我试图从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#,它在统计上更准确.我已经制作了多次重复这些代码的项目,但我不确定它能给我看一些结果.

c# random statistics probability

5
推荐指数
1
解决办法
934
查看次数

C#无法将List <CustomObject>作为属性序列化

嗨,我想序列化

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个小时以来一直在尝试这个,任何身体都可以指出我做错了什么!

关心普拉文

c# list xml-serialization

5
推荐指数
1
解决办法
1万
查看次数

Windows XP上的DateTime.ToLocalTime

.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)

.net timezone datetime windows-xp utc

5
推荐指数
1
解决办法
540
查看次数

DLR的内存占用量是多少?

我正在考虑限制使用C#的dynamic关键字.我的初始时间试验令人惊讶 - 100,000次迭代的性能下降不到一秒(可能是由于DLR缓存).

但是,我无法访问内存分析器,Eric Lippert写道:

然后它启动DLR [...] DLR然后启动一个特殊版本的C#编译器......

这是什么内存占用,并在动态代码被垃圾收集时卸载?

c# memory dynamic-language-runtime dynamic c#-4.0

5
推荐指数
1
解决办法
504
查看次数

使用动态vs接口作为参数的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)

dynamic decoupling c#-4.0

5
推荐指数
1
解决办法
2457
查看次数

Spring Security重命名登录表单标签名称

我弹簧安全登录表单我们有以下表格

<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标签名称,是用户名和密码?

forms spring-security

5
推荐指数
1
解决办法
4964
查看次数

CA1709 - 我们应该忽略这个并使用Db或DB吗?

我知道这听起来很愚蠢,但是对于CA1709,我们应该忽略这个错误,只是做微软所做的事情(使用Db作为数据库的首字母缩写)?

只是想知道那里的人在做什么.对我来说,DB当微软全面使用它时,使用它似乎很愚蠢Db.

.net c# fxcop naming-conventions

5
推荐指数
2
解决办法
488
查看次数

创建一个枚举

如果我想要一个空的枚举,我可以打电话Enumerable.Empty<T>().但是如果我想将标量类型转换为枚举呢?

通常我会写入new List<string> {myString}传递myString给接受的函数IEnumerable<string>.是否有更多的LINQ-y方式?

c# linq c#-4.0

5
推荐指数
1
解决办法
134
查看次数