小编Pao*_*sco的帖子

PowerShell cmdlet参数验证

我正在编写自定义PowerShell cmdlet,我想知道哪种方法可以验证参数.
我认为这可以在属性集访问器中或在Cmdlet执行期间完成:

[Cmdlet(VerbsCommon.Add,"X")]
public class AddX : Cmdlet {

    private string _name;

    [Parameter(
        Mandatory=false,
        HelpMessage="The name of the X")]
    public string name {
        get {return _name;}
        set {
            // Should the parameter be validated in the set accessor?
            if (_name.Contains(" ")) { 
                // call ThrowTerminatingError
            }
            _name = value;
        }
    }

    protected override void ProcessRecord() {
        // or in the ProcessRecord method?
        if (_name.Contains(" ")) {
            // call ThrowTerminatingError
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

哪种是"标准"方法?属性设置器,ProcessRecord还是完全不同的东西?

c# validation powershell cmdlets

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

在ASP.NET用户控件中公开复杂属性

我想从自定义ASP.NET用户控件中公开一个复杂属性,以便可以从aspx页面中的控件标记设置它.

像这样的东西:

public class TestData {
    public int X;
    public int Y;
}

public partial class TestControl : System.Web.UI.UserControl {

    public TestData TestProperty {
        get {
            return ViewState["TestProperty"] as TestData;
        }
        set {
            ViewState["TestProperty"] = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在包含控件的页面的.aspx文件中,我希望有类似的内容:

<div>
    <testns:TestControl runat="server" ID="TestControl1" TestProperty="X:1,Y:2"/>
</div>
Run Code Online (Sandbox Code Playgroud)

c# asp.net user-controls

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

.NET LDAP路径实用程序(C#)

是否有用于LDAP路径操作的.NET库?
我想拥有相当于的东西System.IO.Path,允许例如做类似的事情

string ou1 = LDAPPath.Combine("OU=users","DC=x,DC=y");
string ou2 = LDAPPath.Parent("CN=someone,OU=users,DC=x,DC=y");
Run Code Online (Sandbox Code Playgroud)

否则,在.NET中处理LDAP专有名称的常用方法是什么?

澄清我的问题:我一般不会问".NET中的目录服务"; 我已经使用过它并完成了一些程序来执行某些任务.我觉得缺少的是一种操纵路径,解析专有名称等的正确方法,因为这应该是一个非常普遍的需求,我希望有一种更简洁的方法来做到这一点,而不是在逗号上分割字符串(1).

(1)例如,像在库中调用一个函数来分割逗号上的字符串

.net c# ldap active-directory

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

处理包含内部转义XML的节点

我有一个XML文档,其中包含一个节点,其中包含另一个对象的转义XML序列化,如下例所示:

<attribute>
  <value>
    &lt;map&gt;
      &lt;item&gt;
        &lt;src&gt;something&lt;/src&gt;
        &lt;dest&gt;something else&lt;/dest&gt;
      &lt;/item&gt;
    &lt;/map&gt;  
  </value>
</attribute>  
Run Code Online (Sandbox Code Playgroud)

如何将xslt模板应用于内部xml?特别是,我想得到一对夫妇src/dest的html表:

| src       | dest           |
| something | something else |  
Run Code Online (Sandbox Code Playgroud)

xml xslt escaping

3
推荐指数
1
解决办法
2185
查看次数

使用反射比较通用参数类型

我想获得一个Action<T>使用反射接受参数的方法定义.我正在使用.NET核心1.1.

由于该类有两个具有相同名称的方法,我试图检查接受参数的类型以确保我得到正确的方法定义(而不是其他重载),但是比较似乎没有工作.

以下是一些显示此问题的代码:

using System;
using System.Linq;
using System.Reflection;

class ReflectMe {
    public void SomeMethod<T>(Action<T> action) {
        action(default(T));
    }
    public T SomeMethod<T>() {
        return default(T);
    }
}

class Program {
    static void Main(string[] args) {
        var reflectedMethod = typeof(ReflectMe).GetTypeInfo().GetMethods(BindingFlags.Public | BindingFlags.Instance)
            .Where(m => m.Name == "SomeMethod" && m.IsGenericMethodDefinition)
            .Where(m => {
                var parameters = m.GetParameters();
                if (parameters.Count() != 1) {
                    // this filters out the 1st method
                    return false;
                }
                var actionType = typeof(Action<>);
                var parameterType = parameters[0].ParameterType; …
Run Code Online (Sandbox Code Playgroud)

c# reflection .net-core

3
推荐指数
1
解决办法
368
查看次数

索引模板的部分更新

在ElasticSearch中,是否可以对索引模板进行部分更新?

例如,我尝试仅使用以下内容更改默认分析器(使用 Sense):

PUT /_template/testtemplate/_update
{
    "settings": {
        "index":{
            "analysis": {
               "analyzer": {
                  "default": {
                     "type": "whitespace"
                  }
               }
            }
        }
    }    
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,我收到一条错误消息Invalid index name [_template], must not start with '_': .

我是否必须使用 PUT 再次传递完整模板,或者是否有其他方法可以进行部分更新?

elasticsearch

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

Python - ConfigParser抛出评论

基于ConfigParser模块,我如何过滤掉并从ini文件中抛出每条注释?

import ConfigParser
config = ConfigParser.ConfigParser()
config.read("sample.cfg")

for section in config.sections():
    print section
    for option in config.options(section):
        print option, "=", config.get(section, option)
Run Code Online (Sandbox Code Playgroud)

例如.在上面基本脚本下面的ini文件中打印出更多注释行,如:

something  = 128     ; comment line1
                      ; further comments 
                       ; one more line comment
Run Code Online (Sandbox Code Playgroud)

我需要的是只有段名和纯键值对,没有任何注释.ConfigParser是以某种方式处理此问题还是应该使用regexp ...或?干杯

python configparser

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

XmlReader和MemoryStream,返回的xml未命中标记

有人可以向我解释这种行为吗?

如果您使用第一个字符串执行帖子底部的片段,它将返回与用于输入的字符串完全相同的字符串; 这就是我的预期.

输入1:

<?xml version='1.0' encoding='UTF-8'?>
<Company>
  <Creator>Me</Creator>
  <CreationDateTime>2010-01-25T21:58:32.493</CreationDateTime>
  <Contacts>
    <Contact>
      <ContactID>365</ContactID>
    </Contact>
  </Contacts>
</Company>
Run Code Online (Sandbox Code Playgroud)

输出1:

<?xml version='1.0' encoding='UTF-8'?>
<Company>
  <Creator>Me</Creator>
  <CreationDateTime>2010-01-25T21:58:32.493</CreationDateTime>
  <Contacts>
    <Contact>
      <ContactID>365</ContactID>
    </Contact>
  </Contacts>
</Company>
Run Code Online (Sandbox Code Playgroud)

现在,如果您使用第二行(const string xml),这是相同的字符串,但在一行而不是两行,它返回以下

输入2

<?xml version='1.0' encoding='UTF-8'?>
<Company>
  <Creator>Me</Creator>
  <CreationDateTime>2010-01-25T21:58:32.493</CreationDateTime>
  <Contacts>
    <Contact>
      <ContactID>365</ContactID>
    </Contact>
  </Contacts>
</Company>
Run Code Online (Sandbox Code Playgroud)

输出2

<?xml version='1.0' encoding='UTF-8'?>
<Creator>Me</Creator>2010-01-25T21:58:32.493 
<Contacts>
  <Contact>
    <ContactID>365</ContactID>
  </Contact>
</Contacts>
Run Code Online (Sandbox Code Playgroud)

2之间的唯一区别是第一个在xml声明之后有一个换行符,但是你可以看到第二个输出错过了Parent标签和第三个标签.任何想法?

这是我使用的代码:

public void XmlReader_Eats_Tags_IsTrue()
    {
        //this first xml declaration is on two lines - line break is right after the xml declaration …
Run Code Online (Sandbox Code Playgroud)

c# xml memorystream xmlreader

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