小编e-h*_*der的帖子

如何将Dispose功能添加到C#UserControl?

我有一个实现UserControl的类.在.NET 2005中,在MyClass.Designer.cs部分类文件中自动创建一个Dispose方法,如下所示:

  protected override void Dispose(bool disposing)
  {
     if (disposing && (components != null))
     {
        components.Dispose();
     }
     base.Dispose(disposing);
  }
Run Code Online (Sandbox Code Playgroud)

如果我想添加自己的Dispose功能,我会把它放在哪里?由于生成了这个文件,我不想在这里添加代码并冒着被吹走的风险.

c# user-controls dispose

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

如何在XSLT中输出当前元素路径?

在XSLT中,有没有办法在处理元素时确定XML文档的位置?

示例:给出以下XML Doc Fragment ...

<Doc>
  <Ele1>
    <Ele11>
      <Ele111>
      </Ele111>
    </Ele11>
  </Ele1>
  <Ele2>
  </Ele2>
</Doc>
Run Code Online (Sandbox Code Playgroud)

在XSLT中,如果我的上下文是元素"Ele111",我如何让XSLT输出完整路径?我希望它输出:"/ Doc/Ele1/Ele11/Ele111".

这个问题的上下文:我有一个非常大,非常深的文档,我想详尽地遍历(一般使用递归),如果我找到一个具有特定属性的元素,我想知道我在哪里找到它.我想我可以随身携带当前的路径,但我认为XSLT/XPath应该知道.

xml xslt xpath

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

XSLT计算具有给定值的元素

我需要计算XML文件中具有特定值的元素数量(以验证唯一性).XML文件如下所示:

编辑:我更新了原始的"简化"XML与实际有人设计的毛茸茸的混乱.不幸的是,这将使所有以前的答案真的令人困惑和错误,除非编辑.

<root>
  <ac>
   <Properties>
     <Property Name="Alive">
      <Properties>
        <Property Name="ID">
         <Properties>
           <Property Name="Value">
            <long>11007</long>
           </Property>
         </Properties>
        </Property>
      </Properties>
     </Property>
     <Property Name="Dead">
      <Properties>
        <Property Name="ID">
         <Properties>
           <Property Name="Value">
            <long>11008</long>
           </Property>
         </Properties>
        </Property>
      </Properties>
     </Property>
     ...
     <Property Name="MostlyDeadAllDay">
      <Properties>
        <Property Name="ID">
         <Properties>
           <Property Name="Value">
            <long>99001</long>
           </Property>
         </Properties>
        </Property>
      </Properties>
     </Property>
   </Properties>
  </ac>
</root>
Run Code Online (Sandbox Code Playgroud)

我正在尝试定义一个变量,以查看Alive/Dead级别中有多少属性具有模板参数中定义的长值(ID).沿着这些方向的东西(虽然我怀疑这是错的)......

<xsl:param name="parPropId"/>
<xsl:variable name="countProperties">
   <xsl:value-of select="count(/root/ac/
      Properties/Property/
      Properties/Property[@Name = 'ID']/
      Properites/Property[@Name = 'Value']/long = $parPropId)"/>
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)

可以在"ID"级别定义多个Property元素.但我相当确定我可以指望"ID"下只有一个Property元素("Value"),而"Value"下只有一个"long"元素.

[免责声明]无论是谁设计了整个XML文件我都坚持使用REALLY不知道如何构建XML(例如,向后使用属性与元素).我担心我的XSLT思维会暂时被扭曲:)结果.[/放弃]

xslt count elements

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

如何将参数传递给通过Assembly.CreateInstance加载的C#插件?

我现在拥有的(成功加载插件)是这样的:

Assembly myDLL = Assembly.LoadFrom("my.dll");
IMyClass myPluginObject = myDLL.CreateInstance("MyCorp.IMyClass") as IMyClass;
Run Code Online (Sandbox Code Playgroud)

这仅适用于具有不带参数的构造函数的类.如何将参数传递给构造函数?

c# arguments assemblies createinstance

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

对于C#资源,为什么Properties未定义?

当我尝试访问我的一个C#项目资源中的字符串属性时,我收到以下错误:

'ORG.PRJ.MOD.MyClass2' does not contain a definition for 'Properties'
Run Code Online (Sandbox Code Playgroud)

产生错误的代码是:

string s = MyClass2.Properties.Resources.TestString2;
Run Code Online (Sandbox Code Playgroud)

真正奇怪的是,我的解决方案中的另一个项目(使用MyClass和TestString)具有完全相同的设置不会产生错误并且像冠军一样工作.这是背景和我尝试过的所有事情.

  1. 两者都是VS2008中的普通"类库C#"项目.
  2. 我通过右键单击 - >解决方案树中每个项目的属性创建资源字符串,然后选择"资源"选项卡.然后我在一个中输入了"TestString",在另一个中输入了"TestString2".
  3. 对于有效的项目,如果我键入MyClass. - IDE IntelliSense告诉我"属性"是一个可用的成员(但这是它向我展示的唯一成员).对于不起作用的项目,可用的成员是"Equals"和"ReferenceEquals"(它不会给我"属性").这似乎是SOMETHING不同的最大线索.
  4. 认为我的项目文件已损坏,我从头开始重新创建了两个项目.我删除了所有bin,obj和Properties文件夹,删除了所有Resources.resx和Resources.Designer.cs文件,删除了所有.csproj,.csproj.user,.sln和.suo文件.对于两个项目.然后我再次启动VS2008并使用File-> New - >"Project From Existing Code ..."来创建新项目.然后我以完全相同的方式为两个项目添加了资源(按照上面的步骤2).结果相同.
  5. 我在两个项目(Resources.resx,Resources.Designer.cs,MyProj.csproj)之间的相应文件上执行了"diff".除了我所期望的之外,没有什么看起来不同(类名和字符串名称在它们之间有所不同).
  6. 我用Google搜索了它.基于如何离奇这种感觉,毫无疑问,我已经做了一些愚蠢的疯狂(见/sf/ask/4104831/#756768).

.net c# resources properties

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