小编Abe*_*bel的帖子

浏览器不接受XML 1.1版?

我有一个生成相当普通的XML文档的程序.这样生成的文档的第一行是

<?xml version="1.1"?>
Run Code Online (Sandbox Code Playgroud)

IE8和Firefox都反对这一点,抱怨"错误版本"并明确指向"1.1"部分.

如果我修补第一行说:

<?xml version="1.0"?>
Run Code Online (Sandbox Code Playgroud)

他们俩都会在没有投诉的情况下加载/显示文档.

XML版本1.1不是标准吗?浏览器真的不接受这些吗?或者错误消息(与大多数软件错误消息一样)只是误导而其他错误?

xml browser xml-1.1

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

如何防止事件导致自己的事件在C#中触发?

我有一个带有复选框的树视图,我有"AfterCheck"事件的以下处理程序:

private void trvAvailableFiles_AfterCheck(object sender, TreeViewEventArgs e)
{
    if (!_isCheckingInProgress)
    {
        trvAvailableFiles.BeginUpdate();

        var nodePath = e.Node.Tag.ToString();
        bool isChecked = e.Node.Checked;
        e.Node.Nodes.Clear();

        try
        {
            _fileTreeLogic.GetChildNodes(e.Node, true);
            e.Node.ExpandAll();

            _isCheckingInProgress = true;
            SetChildrenCheckState(e.Node, isChecked);
            _isCheckingInProgress = false;

        }
        finally
        {
            trvAvailableFiles.EndUpdate();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果仔细观察,你会发现我正在检查"_isCheckingInProgress".如果不是,那么我继续并展开所有节点并调用SetChildrenCheckState()方法.我遇到的问题是SetChildrenCheckState()随后将导致每个子节点都为其自己的节点触发AfterCheck事件.

我的问题是,是否有更简洁的方法允许第一个AfterCheck事件发生而不是后续事件?我必须有一个实例bool变量来检查和设置似乎有点hackish.

.net c# treeview events winforms

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

读取XML并根据属性执行操作

假设我有一个XML文件,例如:

<root>
  <level1 name="level1A">
    <level2 name="level2A">
      <level3 name="level3A">
        <level4 name="level4A">
          <level5 name="level5A">
            <level6 name="level6A">
              <level7 name="level7A">
                <level8 name="level8A"></level8>
              </level7>
            </level6>
          </level5>
        </level4>
      </level3>
    </level2>
  </level1>
   <level1 name="level1B">
     <level2 name="level2B">
       <level3 name="level3B">
        <level4 name="level4B">
          <level5 name="level5B">
            <level6 name="level6B">
              <level7 name="level7B">
                <level8 name="level8B"></level8>
              </level7>
            </level6>
          </level5>
        </level4>
      </level3>
    </level2>
  </level1>
</root>
Run Code Online (Sandbox Code Playgroud)

如何根据元素读取此文件并执行代码片段?例如,如果"name"元素显示"level7a",则执行代码片段X.如果name元素表示level7B,则执行代码片段Y.

如果能让答案更容易,我可以提供这样的代码片段.谢谢您的帮助!

.net c# xml

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

不允许重载泛型类型参数?

这是好奇心的一部分,因为我只想尝试使用它.如果您具有以下定义,则编译器不允许这样做,因为它表示已定义成员.不允许泛型类型参数的独占重载的原因是什么?

void Get<T>() where T: struct {}
void Get<T>() where T: class {}
Run Code Online (Sandbox Code Playgroud)

在我看来,这没有固有的问题.有人可能会争辩说,在定义重叠的情况下,编制者应该选择哪一个并不总是很清楚(但是普通分辨率似乎最先具体匹配).

有人可以帮助我理解或指向资源禁止这种情况的原因是什么?

.net c# generics clr

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

32位与64位版本类型的条件编译的首选方法

我需要某个任务来枚举系统中的所有句柄.到目前为止,我发现的最好的方法是使用underdocumented NtQuerySystemInformationwith SystemHandleInformationclass参数.

到现在为止还挺好.但是,在64位Windows上以32位模式运行它,所需的结构如下:

// 32-bit version
[StructLayout(LayoutKind.Sequential, Pack=1)]
public struct SYSTEM_HANDLE_INFORMATION
{
    public uint ProcessID;               
    public byte ObjectTypeNumber;       
    public byte Flags;                  
    public ushort Handle;               
    public uint Object_Pointer;       
    public UInt32 GrantedAccess;        
}
Run Code Online (Sandbox Code Playgroud)

而对于64位Windows(x64,我没有测试Itanium,我希望没有什么不同......),结构如下:

// 64-bit version
[StructLayout(LayoutKind.Sequential, Pack=1)]
public struct SYSTEM_HANDLE_INFORMATION
{
    public int Reserved;            // unknown, no documentation found
    public uint ProcessID;               
    public byte ObjectTypeNumber;       
    public byte Flags;                  
    public ushort Handle;               
    public long Object_Pointer;       
    public UInt32 GrantedAccess;        
}
Run Code Online (Sandbox Code Playgroud)

现在,我应该改变Object_PointerIntPtr.我希望我能做同样的事情ProcessId,有一个参考说这实际上是一个HANDLE实际上是64位的值.但是, …

.net c# pinvoke interop marshalling

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

如何在部分类的另一半中定义的属性上使用属性?

我有一个自动生成的类来导入包含这样的(缩写)的web服务:

[System.Runtime.Serialization.DataMemberAttribute()]
public System.DateTime StartDate 
{
    get 
    {
        return this.StartDateField;
    }
    set { /* implementation prop changed */ }
}
Run Code Online (Sandbox Code Playgroud)

我想为此成员添加MVC格式属性.所以在另一个包含相同partial class定义的文件中,我想做类似以下的事情(这是非法的):

[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)] 
public DateTime StartDate;
Run Code Online (Sandbox Code Playgroud)

部分方法在这里没有用,因为部分方法必须是私有的,具有void返回类型,必须是方法等等.

我该如何装饰这个会员?

c# asp.net-mvc attributes partial-classes

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

为什么Microsoft在导入WSDL时将XSD xs:integer与字符串匹配?

在webservice上查看WDSL.xml声明数据类型是一个整数,但是,在调用web方法时,该方法需要一个字符串,WDSL代码如下

<System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType:="integer", Order:=0)> _

Public Property ID() As String
    Get
        Return Me.ID
    End Get
    Set(value As String)
        Me.ID= value
    End Set
End Property
Run Code Online (Sandbox Code Playgroud)

它是否正确?我很困惑,为什么它需要传递一个字符串,如果序列化说的是整数类型?

我的经验告诉我,在他们这边,即服务器,他们会将字符串转换为整数?正确?

谢谢

xml vb.net wcf xsd wsdl

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

将 XJC 与 xml.xsd 导入一起使用时出错:“无法读取架构文档 'xml.xsd'”

我正在尝试在第三方的架构文件(它是 Amazon.com 的产品 API)上运行 xjc。好吧,我遇到了麻烦,因为对于其中一个文件 default.xsd,xjc 正在执行以下导入(这是模式声明之后的第一个):

<import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />
Run Code Online (Sandbox Code Playgroud)

我不是 XML 专家,但我认为 xml.xsd 是“核心”XML/XSD 库的一部分,默认情况下 XJC 会知道这个库的详细信息。但是当我运行任务时,我收到此错误:

[警告] schema_reference.4:无法读取架构文档“xml.xsd”,因为 1) 找不到该文档;2) 无法读取文件;3) 文档的根元素不是 。文件的第 9 行:/C:/temp/amazon/default.xsd

[错误] src-resolve:无法将名称“xml:lang”解析为 (n)“属性声明”组件。文件的第 119 行:/C:/temp/amazon/default.xsd

我尝试将 xml.xsd 文件从http://www.w3.org/2001/03/xml.xsd下载到包含这些架构文件的目录并再次运行该命令,但 xml.xsd 未验证:

[ERROR] schema_reference.4:无法读取架构文档“file:/C:/temp/amazon/xml.xsd”,因为 1) 找不到文档;2) 无法读取文件;3) 文档的根元素不是 。未知地点

我正要开始思考为什么这不会得到验证,但决定推迟,因为我认为我错过了一些非常简单或很小的东西。我需要手动包含 xml.xsd 导入还是我缺少其他东西?

我正在使用的架构的网址目前在这里:

http://g-ecx.images-amazon.com/images/G/01/mwsportal/doc/en_US/products/default.xsd

和这里

http://g-ecx.images-amazon.com/images/G/01/mwsportal/doc/en_US/products/ProductsAPI_Response.xsd

我只是在使用:

xjc dirname 一起或 xjc filename 尝试一一解析它们

java xml xsd jaxb

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

使用F#Power Tools丢失语法着色,重新安装有助于寻找更简单的解决方案

我不得不承认,我已经习惯于在我的日常F#编码中使用F#Power Tools.没有它,生活就不一样了.

偶尔,通常在几天或几周之后,我会丢失语法着色和其他一些功能(F12会员也停止工作).

之前我通过重新安装Power Tools修复了它,但我不知道重新安装修复它还是强制刷新VS中的某个文件.只是重新启动/重新编译等没有帮助.

在我的C++时代有一个我可以删除的浏览信息文件,这里有类似的东西吗?任何想法在哪里看?

f# visual-studio-2015

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

如何确定启用 gcServer 配置是否生效?

我支持在 .NET 2.0 SP1 上运行的四核 8G 机器上安装在 Windows 2003 SP3 Enterprise 上的 ASP.NET v2.0 应用程序。

  1. 在启用配置之前,运行“tasklist /m mscorwks.dll”
    Image Name PID Modules
    w3wp.exe 7888 mscorwks.dll

  2. 在 web.config 部分下添加

  3. 运行 IISRESET,也重新启动了服务器

  4. 运行“tasklist /m mscorsvr.dll”
    信息:没有运行符合指定条件的任务。

  5. 运行“tasklist /m mscorwks.dll”
    图像名称PID模块
    w3wp.exe 6251 mscorwks.dll

好像 gcServer 没有生效。是否需要任何其他设置/配置才能使其正常工作?

asp.net garbage-collection

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