小编MaY*_*YaN的帖子

如何在C#中找到泛型类的属性?

我有以下课程:

[Msg(Value = "YaaY")]
public class PersonContainer<T>  where T : new()
{
   ...
}


public class HappyPerson
{
   ...
}

[Msg(Value = "NaaY")]
public class SadPerson
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

使用以下方法,我可以获得"PersonContainer"的属性:

public void GetMsgVals(object personContainer)
{
    var info = personContainer.GetType();

    var attributes = (MsgAttribute[])info.GetCustomAttributes(typeof(MsgAttribute), false);
    var vals= attributes.Select(a => a.Value).ToArray();        
}
Run Code Online (Sandbox Code Playgroud)

但是我只获得"PersonContainer"(即"YaaY")的属性,如何T (HappyPerson [if any] or SadPerson["NaaY"])在不知道T是什么的情况下获得运行时的属性?

c# generics reflection

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

如何在PowerShell中将`ls`的结果作为char分隔字符串加入?

我有一个包含以下文件的文件夹:

  • File_1.txt
  • File_2.txt
  • AnotherFile.txt

我希望能够实现以下输出: File_1.txt - File_2.txt

我试过跑:

ls .\file*.txt | %{$_.Name}

除了在不同的行上,它返回我想要的内容,如何加入给定字符返回的文件(-在本例中)?

任何帮助表示赞赏.

powershell powershell-2.0

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

为什么我不能将 ServiceStack OrmLite 中的 IDbTransaction 转换为 DbTransaction?

我正在使用ServiceStack.Ormlite v3.9.71并拥有以下代码段,我在其中打开 Ormlite SQLite 事务,假设我想在代码中其他地方的命令中使用此事务:

var connFactory = new OrmLiteConnectionFactory("ConnectionString", SqliteOrmLiteDialectProvider.Instance)
using (IDbConnection db = connFactory.Open()) // using var doesn't make a difference
using (IDbTransaction tran = db.OpenTransaction()) // using var or even db.BeginTransaction() doesn't make a difference
{
    // I do lots of boring stuff
    ...

    // Somewhere else in the code
    using (var cmd = db.CreateCommand())
    {
        cmd.Transaction = tran; // get an error
    }
}    
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我得到:

A first chance exception of type 'System.InvalidCastException' occurred in …
Run Code Online (Sandbox Code Playgroud)

c# sqlite ormlite-servicestack

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

如何在Typescript中将类型的属性作为数组获取?

给定以下类型:

class Foo {
    constructor(
        private one: string, 
        private two: string, 
        private three: string) {
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能有一个数组,其值是类型的属性?

例如,我需要能够得到一个数组:

['一二三']

注意我需要从类型而不是实例中提取属性,否则我可以简单地使用Object.keys(instanceOfFoo).

javascript typescript

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