小编mok*_*mok的帖子

InvalidDataContractException是一个无效的集合类型,因为它具有DataContractAttribute

我有这个代码:

[DataContract]
class MyData
{
    private Int32 dato1;
    [DataMember]
    public Int32 Dato1
    {
        get { return dato1; }
        set { dato1 = value; }
    }

    public MyData(Int32 dato1)
    {
        this.dato1 = dato1;
    }
    public MyData()
    {
        this.dato1 = 0;
    }
}

[DataContract]
class MyCollection2 : List<MyData>
{
    public MyCollection2()
    {
    }

}
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用以下命令序列化MyCollection2的一个对象:

MyCollection2 collec2 = new MyCollection2();
collec2.Add(new MyData(10));
DataContractSerializer ds = new DataContractSerializer(typeof(MyCollection2));
using (Stream s = File.Create(dialog.FileName))
{
    ds.WriteObject(s, collec2);
}
Run Code Online (Sandbox Code Playgroud)

然后我得到下一个例外:

InvalidDataContractException是一个无效的集合类型,因为它具有DataContractAttribute

但是,如果我使用下一个类(不直接从List继承,而是具有List成员):

[DataContract]
class MyCollection1 …
Run Code Online (Sandbox Code Playgroud)

c# wcf serialization exception datacontract

9
推荐指数
1
解决办法
6649
查看次数

SQL Server的奇怪行为 - 随机选择

我一直在调试下面的声明几个小时:

SELECT 
(
SELECT  t1.anotherColumn
FROM table1 t1
WHERE t1.aColumn=(1+ABS(Checksum(NewId()))%54)
) res, *
FROM 
(
SELECT TOP 200 * --PLEASE NOTICE HERE
FROM table2
)RESULT
Run Code Online (Sandbox Code Playgroud)

问题是res每行总是包含相同的值.现在,如果我200将查询语句中突出显示的更改为下面的任何数字,176则显示其中的随机行table1是所需的结果!
请注意,这54对结果没有影响,只是因为我的表有54个不同的值,从1到54 aColumn.
我在不同的表上尝试过这个查询,这种奇怪的行为会重复出现!

sql sql-server

9
推荐指数
1
解决办法
117
查看次数

Serilog 两次写入日志

我使用SerilogElasticsearch sink 的配置如下:

Log.Logger = new LoggerConfiguration()
                    .MinimumLevel.Verbose()
                    .MinimumLevel.Override("Microsoft", LogEventLevel.Verbose)
                    .Enrich.FromLogContext()
                    .Enrich.WithExceptionDetails()
                    .Enrich.WithProperty("Application", "abc")
                    .Enrich.WithProperty("Environment", env.EnvironmentName)
                    .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(Configuration["LoggingEndpoint"]))
                    {
                        AutoRegisterTemplate = true,
                        CustomFormatter = new ExceptionAsObjectJsonFormatter(renderMessage: true) // Better formatting for exceptions
                    })
Run Code Online (Sandbox Code Playgroud)

// 然后:

services.AddLogging(loggingBuilder =>
            loggingBuilder.AddSerilog());
Run Code Online (Sandbox Code Playgroud)

但是我可以在 Kibana 上看到每个日志两次,时间戳相差几毫秒。我尝试了此处提供的解决方案,以防万一它们可能有所帮助,但没有运气。

serilog asp.net-core-2.0 kibana-6

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

点击按钮时如何制作小闪光灯?

所以我正在制作一个拥有超过100个按钮的Android应用程序,但是当你没有改变背景或任何闪烁橙色的东西时,你知道当你正常点击按钮时.然而,因为我在点击它时为我的按钮添加了背景颜色,它只是进入下一个屏幕,你不能告诉你已经点击了按钮!

有人可以帮帮我吗?对不起,如果我不知道那些被称为:(

eclipse android button

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

如何阻止Matlab重新排列符号变量?

这个符号表达式在Matlab中

syms x y;
f = x * y * y
Run Code Online (Sandbox Code Playgroud)

回报

f =

x*y^2
Run Code Online (Sandbox Code Playgroud)

如何阻止Matlab简化表达式并将其保留为x * y * y?我试图以这种方式打印计算步骤,因此重新排序这些术语会引起混淆.

matlab expression symbolic-math simplification

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

java中的c#null合并运算符是否相等?

我在java中搜索了一段相同的C#'nullable',发现最接近的方法之一是使用包装类; 现在我想知道java中的c#null coalescing运算符(??)是否相等?(当然除了普通的'if'陈述)

java nullable null-coalescing-operator

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

"简单"Trie实施

我需要为大学项目实现Trie(用Java).Trie应该能够添加和删除字符串(适用于阶段1).

我每天花费几个小时(最近几天)试图弄清楚如何做到这一点并且每次都惨不忍睹.

我需要一些帮助,互联网上的例子和我的教科书(Java中的数据结构和算法,Adam Drozdek)没有帮助.

信息

  1. 我正在使用的节点类:

    class Node {
        public boolean isLeaf;
    }
    
    class internalNode extends Node {
        public String letters;  //letter[0] = '$' always.
        //See image -> if letter[1] = 'A' then children[1] refers to child node "AMMO"
        //See image -> if letter[2] = 'B' then children[2] refers to internal node "#EU"
        public TrieNode[] children = new TrieNode[2];
    
        public TrieInternalNode(char ch)
        {
            letters = "#" + String.valueOf(ch);//letter[0] = '$' always.
            isLeaf = false;
        }
    }
    
    class leafNode …
    Run Code Online (Sandbox Code Playgroud)

java tree trie data-structures multiway-tree

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

prepareStatement不适用于sqlite

我尝试使用prepareStatement来查询sqlite但我遇到异常:

java.sql.SQLException: not supported by PreparedStatment
    at org.sqlite.PrepStmt.unused(PrepStmt.java:328)
    at org.sqlite.PrepStmt.executeUpdate(PrepStmt.java:314)
Run Code Online (Sandbox Code Playgroud)

我正在使用Eclipse开发我的程序,所以当我点击at org.sqlite.PrepStmt.unused(PrepStmt.java:328)它时会将我重定向到PrepStmt.class里面,我发现了这些:

@Override
public int executeUpdate(String sql) throws SQLException {
    throw unused();
}
private SQLException unused() {
    return new SQLException("not supported by PreparedStatment");
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

public static void deleteOp(String word) throws Exception {
    Connection c = null;
    PreparedStatement stmt = null;
    try {
      Class.forName("org.sqlite.JDBC");
      c = DriverManager.getConnection(connectionString);
      c.setAutoCommit(false);
      System.out.println("Opened database successfully");

      String sql = "DELETE from " + tableName + " where WORD = ? ;"; …
Run Code Online (Sandbox Code Playgroud)

java sqlite jdbc prepared-statement

4
推荐指数
2
解决办法
1746
查看次数

更改Visual Studio 2013中Microsoft Git Provider使用的凭据

我在Visual Studio 2013中使用Microsoft Git Provider从我们的git存储库中克隆项目.我想第一次它问我一些凭据,从那以后我可以拉,提交并推动我的更改.但是,最近我不得不更改该存储库的密码(在visual studio之外),并且我总是收到401错误,说我没有被授权.问题是我不知道如何更改visual studio使用的凭据.

git visual-studio

4
推荐指数
1
解决办法
2429
查看次数

StringComparison,为什么"TH"不是以"T"开头

我正在使用StringComparison,"vi-VN"文化; 为什么比较字符串"TH""Th".StartsWith("T", StringComparison.CurrentCulture)返回false

.net c# vb.net string-comparison

4
推荐指数
1
解决办法
108
查看次数