小编Mik*_*ark的帖子

在ILMerge之后,BinaryFormatter.Deserialize"无法找到程序集"

我有一个带有引用的dll的C#解决方案(也是具有相同.Net版本的C#).当我构建解决方案并运行生成的exe,而不合并exe和引用的DLL时,一切正常.

现在我想将这些合并到一个exe中.我运行ILMerge,一切似乎都正常.我尝试执行exe,它似乎运行正常,直到它尝试反序列化引用的DLL中定义的对象.

using (Stream fstream = new FileStream(file_path, FileMode.Open))
{
    BinaryFormatter bf = new BinaryFormatter();
    return bf.Deserialize(fstream) as ControlledRuleCollection; 
    // throws unable to find assembly exception
}
Run Code Online (Sandbox Code Playgroud)

可能有一些ILMerge选项我在这里丢失了吗?

c# ilmerge binary-serialization

12
推荐指数
3
解决办法
2万
查看次数

XML Schema - 在XML中列出允许的属性/标签

有没有办法在XML中的某个点查询XmlSchemaXmlSchemaSet列出可用的标签/属性?所以说我的光标位于<b>和之间,</b>并且我的模式只允许在<c/>那里使用一个元素,我可以用C#内置的任何东西来解决这个问题吗?

<tagset>
  <a></a>
  <b><!-- CURSOR IS HERE --></b>
</tagset>
Run Code Online (Sandbox Code Playgroud)

c# xml schema

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

无法将值从列XX转换为"2012-04-05 10:20:00"到TIMESTAMP

当JDBC尝试将MySQL(5.1.51)中的有效日期时间转换为java.sql.timestamp时,将抛出java.sql.SQLException.一个例子是:

java.sql.SQLException: Cannot convert value '2012-04-05 10:20:00' from column 40 to TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

这是第一次

Versions:
MySQL: 5.1.51
J/Connector: 5.1.19
Column Definition:  DATETIME
Java Type:   java.sql.Timestamp
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

Cannot convert value '2012-04-05 10:20:00' from column 40 to TIMESTAMP.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
    at com.mysql.jdbc.ResultSetRow.getTimestampFast(ResultSetRow.java:1335)
    at com.mysql.jdbc.BufferRow.getTimestampFast(BufferRow.java:576)
    at com.mysql.jdbc.ResultSetImpl.getTimestampInternal(ResultSetImpl.java:6466)
    at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:6066)
    at com.mysql.jdbc.ResultSetImpl.getTimestamp(ResultSetImpl.java:6104)
    at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:300)
    at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:300)
    at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.getTimestamp(DelegatingResultSet.java:300)
Run Code Online (Sandbox Code Playgroud)

DAO类最近没有被修改过.服务器上最近唯一的变化是将MySQL从5.1.46升级到5.1.51

java mysql datetime jdbc

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

为什么STAX解析器认为这是有效的XML 1.0而不是1.1?

在下面的代码示例中,我使用STaX解析器来解析一段XML.如果我通过它运行xml10,它按预期工作.xml11字符串(除了xml版本之外是相同的) - 它会抛出NullPointerException.我在使用JDK 1.6的Mac上运行它.

import javax.xml.namespace.QName;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.StringReader;
import java.util.Stack;

/**
 */
public class StaxSucks {

    static String xml10 ="<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n"+
                        "<anElement/>";

    static String xml11 ="<?xml version=\"1.1\" encoding=\"utf-8\" ?>\n"+
            "<anElement/>";


    static void parse(InputStream is) throws Exception{
        final XMLInputFactory factory = XMLInputFactory.newInstance();
        factory.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, Boolean.FALSE);
        final XMLStreamReader xmlStreamReader = factory.createXMLStreamReader(is);
        Stack<QName> XMLDEPTH = new Stack<QName>();
        int eventType = xmlStreamReader.next();
        while(eventType != XMLStreamConstants.END_DOCUMENT){
            if(XMLStreamConstants.START_ELEMENT == eventType){
                QName eventName = xmlStreamReader.getName();
                XMLDEPTH.push(eventName); …
Run Code Online (Sandbox Code Playgroud)

java xml stax xml-parsing

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

排序自定义对象列表

我有一个名为Person的类,它包含一个属性LastName,它反映了一个与Person的姓氏相对应的字符串.

我创建了一个List如下:

var People = List<Person>
Run Code Online (Sandbox Code Playgroud)

我想要做的是按字母顺序按人员的LastName属性排序.

看了一些例子,我试过了

People = People.OrderBy(p => p.LastName);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

c#

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

c#datatable主键问题

所以我在Oracle数据库中有一个表,我基本上试图在C#中复制它的主键.我可以很好地加载表,但是当我尝试添加与oracle表相同的主键约束时,我收到此错误:

"These columns don't currently have unique values".
Run Code Online (Sandbox Code Playgroud)

这是代码

DataTable dt = new DataTable(combine(owner, name));
string q = "select " + getColumnSelect(owner, name) + 
           " from " + combine(owner, name) + " " + 
           (where_clause ?? "") + " order by " + getOrderByKeys(owner, name);

// load the data table
OracleDataAdapter oda = new OracleDataAdapter(q, conn);
oda.FillLoadOption = LoadOption.PreserveChanges;
dt.BeginLoadData();
oda.Fill(dt);
dt.EndLoadData();

// now set primary keys
List<DataColumn> cols = new List<DataColumn>();
foreach (string key in getKeys(owner, name))
{
    cols.Add(dt.Columns[key]); …
Run Code Online (Sandbox Code Playgroud)

c# datatable

2
推荐指数
1
解决办法
8369
查看次数