小编Mso*_*nic的帖子

PowerShell - 为加载的程序集设置别名

我使用此代码将.Net程序集加载到PowerShell:

[System.Reflection.Assembly]::Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") | out-null 
[System.Windows.Forms.MessageBox]::Show("Hello world")
Run Code Online (Sandbox Code Playgroud)

我可以为程序集设置别名(例如:'System.Windows.Forms'='Forms'),这样在调用MessageBox.Show()等静态方法时我不必输入程序集的全名吗?

.net powershell

7
推荐指数
2
解决办法
2759
查看次数

如何将元组正确序列化为键字典

我有以下应用程序显示字典的关键部分没有发送到JsonConverter,但它被调用ToString()。这对我来说是个问题,因为我无法反序列化我的Jsonstring 。

有任何想法吗?

class Program
{
    static void Main(string[] args)
    {
        var coll = new Dictionary<Tuple<string,string>, string>();
        coll.Add(Tuple.Create("key1", "KEY1"), "Value1");
        coll.Add(Tuple.Create("key2", "KEY2"), "Value2");
        string json = JsonConvert.SerializeObject(coll);
        Dictionary<Tuple<string, string>, string> coll2;
        Console.WriteLine(json);
        //coll2 = JsonConvert.DeserializeObject<Dictionary<Tuple<string, string>, string>>(json);
        // It throws an exception here 
        //foreach (var k in coll2)
        //{
        //    Console.WriteLine("<{0}|{1}>",k.Key, k.Value);
        //} 

        var t = Tuple.Create("key1", "key2");
        Console.WriteLine(t.ToString());
        string json2 = JsonConvert.SerializeObject(t);
        Console.WriteLine(json2);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出 :

{"(key1, KEY1)":"Value1","(key2, KEY2)":"Value2"} (key1, key2)
{"Item1":"key1","Item2":"key2"} …

c# json.net

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

取消Telerik RadGrid上的按键[Enter]操作

我有一个Telerik Radgrid包含所有有效的用户名和密码,可用于解锁我的网页上的功能.

密码已加密,因此您必须单击要解密的行并显示实际密码.管理员可以更改所有用户名和密码

当管理员按[ENTER]提交新的用户名/密码组合(而不是按下提交按钮)时,实际上提交了新的组合(这很好).


但是,我的问题是,默认情况下,RadGrid选择下一行,解密密码并允许您编辑用户名/密码.

理想情况下,按[ENTER]只会提交用户名/密码组合,而不会选择任何其他行.如果那是不可能的,按[ENTER]不应该做任何事情.

如果尝试过以下javascript代码:

<script type="text/javascript">                
    function KeyPressed(sender, eventArgs) {
        if (eventArgs.get_keyCode() == 13) 
        {
            alert("Cancelling event");
            eventArgs.set_cancel(true);
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

警报框被引发,但[ENTER]事件不会被中断.

编辑:请注意,警报仅用于测试!

我还将此代码添加到我的RadGrid控件中以添加KeyPress捕获

    <ClientSettings EnableRowHoverStyle="true" EnablePostBackOnRowClick="true" ClientEvents-OnKeyPress="KeyPressed" AllowKeyboardNavigation="true">
        <Selecting AllowRowSelect="True" />
    </ClientSettings>
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何中断[ENTER]按键事件?或者修改它的行为?任何提示将不胜感激


我在Visual Studio 2008上使用VB.net.我使用的是ASP.net 2.0版

vb.net asp.net keypress visual-studio-2008 telerik-grid

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

覆盖c#中的基本受保护属性

轻微的新手问题.

我有一个支付基类.除了额外的额外内容,所有人都拥有相同的属性.其中一个属性是postUrl.在基础中,这是空的,但在子类中,每个类都有自己的URL.不应该允许从类外部访问它并且它已修复且不应更改.我如何在儿童班中覆盖房产?

例如

class paymentBase
{
    public int transactionId {get;set;}
    public string item {get;set;}
    protected virtual postUrl = String.empty; // can't be accessed from outside inheritance / public / protected?

    public void payme();
}

class paymentGateWayNamePayment : paymentBase
{
    protected override postUrl { 
        get { return "http://myurl.com/payme"; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

提前致谢

c# oop inheritance

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

如何显示数字

这是我的DataGrid的内容

id

1
2
3A
4
5
6A
..
...
10V1
Run Code Online (Sandbox Code Playgroud)

我想从datagrid获取最大数量.然后,我想在网格旁边的文本框中显示下一个数字(在本例中为11)

预期产出

id

1
2
3A
4
5
6A
..
...
10V1
11
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码:

textbox1.text = gridList.Rows(gridlist.RowCount() - 1).Cells(1).Value + 1
Run Code Online (Sandbox Code Playgroud)

如果前一行值完全是数字,则它可以工作.但是,如果值是alpahnumeric,我收到以下错误:

Conversion from string "10V1" to type 'Double' is not valid.
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决这个问题吗?我正在寻找一个解决方案VB.Net

vb.net

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