问题列表 - 第21771页

如何反映具有泛型接口的类型,并获得该类型的泛型

我的第一个目标是使用泛型基于特定接口过滤类型.

我的第二个目标是获取泛型参数本身的类型.

public UserService : IUserService, IDisposable, IExportableAs<IUserService>
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

我不能假设类的结构,它的接口(如果有的话)或类似的.我知道的唯一一件事就是我ExportableAs<T>用来创建这个插件的共享程序集.但是,我需要动态注册该类型.

所以,我使用通用接口来标记要导出的类型.在这种情况下,它是IUserService.我这样做假设一些漂亮的Linq查询可以给我我想要的东西.但是,我有点麻烦.

这是我到目前为止所拥有的:

assembly.GetTypes()
    .Where(t => t.GetInterfaces().Any(i => 
                i.IsGenericType &&
                i.GetGenericTypeDefinition() == typeof(IExportableAs<>))
            ).ToList()
    .ForEach(t => _catalogs.Add(
            new ComposablePart()
            {
                Name = t.FullName,
                Type = t // This is incorrect
            })
        );
Run Code Online (Sandbox Code Playgroud)

这是有效的,但请注意上面的评论"这是不正确的".这种类型是派生类UserService.

我最终的结果是:

  • 泛型类型传入IExportableAs<T>(IUserService在这种情况下)
  • 派生类类型(在本例中为UserService)

这个问题得到了很好的投票,因为它使我接近(如上所示):如何确定类型是否实现了特定的通用接口类型 但是,我需要更进一步找到该泛型类型.

随意修改上面的linq.

提前致谢!

linq generics types

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

如何读取key = value文件以及如何拆分以逗号分隔的String?

我制作了一个配置文件,它有一些以下格式

variableName = value
variableName = value
variableName = value
Run Code Online (Sandbox Code Playgroud)

我知道我可以读取文件,将它们存储在变量中.但我正在寻找一种简单的方法.例如,我想将变量名称及其值存储在一个文件中,我想在读取文件时自动恢复变量及其值.(我知道如何在PHP中做到这一点很容易,但我不是java专家:()

我的第二个问题是关于文件阅读.例如,我有一个包含行和列的文件,它可以是CSV

one,two,three
four,five,six
seven,eight,nine
Run Code Online (Sandbox Code Playgroud)

我想读它,它返回整列,例如(一个四七)与其他人相同.我不想仅仅为一个函数使用OpenCSV作为其非面向csv的应用程序.

编辑:


是否可以写入所有变量名称及其值,当我读取文件时,它会自动声明这些变量并赋值?

java

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

您是否将助手类存储在单独的程序集中?

我只是想知道是否有人将他们的助手类或方法存储在一个单独的程序集中,为什么......只是为了清理它们?我看过很多关于在你的MVC项目中使用帮助文件夹的帖子,这让我回到了ASP.NET的旧时代,人们使用App_code文件夹,而不是像这样将物理分离到自己的项目中.

同样,没有人在做真正的架构会将模型放在MVC Web组件的某个文件夹中.他们会进入MyApp.DataLayer程序集或MyApp.Models或类似的东西.

asp.net asp.net-mvc

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

Twitter用户名的正则表达式

你能提供一个与Twitter用户名匹配的正则表达式吗?

如果提供Python示例,则额外奖励.

python regex twitter

42
推荐指数
4
解决办法
3万
查看次数

为什么我们需要一个单位向量(换句话说,为什么我们需要对向量进行标准化)?

我正在读一本关于游戏AI的书.

正在使用的术语之一是规范化矢量,该矢量将矢量转换为单位.要做到这一点,您必须将每个维度x,yz通过它的大小.

在我们对它做任何事情之前,我们必须把矢量变成一个单元.为什么?

任何人都可以给出一些我们必须使用单位向量的场景吗?

谢谢!

c c++ math

35
推荐指数
4
解决办法
2万
查看次数

控制器!=业务层?

所以我假设人们仍然只使用控制器逻辑之外的业务层?如果是这样,绘制的灰线在哪里,你在控制器类中没有放入你的业务层项目,反之亦然?在我看来,Controllers完全消除了对MVC应用程序中业务层的需求.

asp.net asp.net-mvc

4
推荐指数
2
解决办法
524
查看次数

Apache HttpClient制作多部分表单帖子

我对HttpClient非常环保,而且我发现缺少(和或明显不正确)的文档非常令人沮丧.我正在尝试使用Apache Http Client实现以下帖子(如下所列),但不知道如何实际执行此操作.我将在下周的文档中埋葬自己,但也许更有经验的HttpClient程序员可以尽快给我一个答案.

帖子:

Content-Type: multipart/form-data; boundary=---------------------------1294919323195
Content-Length: 502
-----------------------------1294919323195
Content-Disposition: form-data; name="number"

5555555555
-----------------------------1294919323195
Content-Disposition: form-data; name="clip"

rickroll
-----------------------------1294919323195
Content-Disposition: form-data; name="upload_file"; filename=""
Content-Type: application/octet-stream


-----------------------------1294919323195
Content-Disposition: form-data; name="tos"

agree
-----------------------------1294919323195--
Run Code Online (Sandbox Code Playgroud)

java multipartform-data apache-httpclient-4.x

70
推荐指数
2
解决办法
8万
查看次数

trac有远程API吗?

我知道trac有xmlrpc插件.但我不是我的trac网站,也没有管理员权限.我只有一个普通的用户帐户,有限的权限.

除了显而易见的低级别服务(通过模拟Web浏览器提交请求)之外,还有更好的方法吗?

我主要对以下内容感兴趣:

  • 查看维基页面
  • 编辑维基页面
  • 提交新票
  • 查看票证
  • 添加评论到票证

api trac

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

返回该对象(而不是指针)时是不是要调用析构函数?

我有一个功能:

static Bwah boo(){
   Bwah bwah;
   return bwah;
}
Run Code Online (Sandbox Code Playgroud)

主要功能:

int main(){
   Bwah boo = Assigner::boo();
   cout << "got here.." << endl;
}
Run Code Online (Sandbox Code Playgroud)

在"到达"打印之后,Bwah的析构函数只被调用一次.这是保证还是编译器优化?

c++ destructor

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

保持SQL干

这是我正在运行的MySQL查询:

-- get the sid of every supplier who does not supply both a red and green part
SELECT Suppliers.sid, Parts.color
FROM Suppliers
JOIN Catalog ON Catalog.sid = Suppliers.sid
JOIN Parts ON Parts.pid = Catalog.pid
WHERE Suppliers.sid NOT IN (
    SELECT Suppliers.sid
    FROM Suppliers
    JOIN Catalog ON Catalog.sid = Suppliers.sid
    JOIN Parts ON Parts.pid = Catalog.pid
    WHERE Parts.color IN ('red', 'green')
    GROUP BY Suppliers.sid
    HAVING COUNT(DISTINCT Parts.color) = 2
)
ORDER BY Suppliers.sid DESC;
Run Code Online (Sandbox Code Playgroud)

如您所见,重复两次:

FROM Suppliers
JOIN Catalog ON …
Run Code Online (Sandbox Code Playgroud)

mysql sql dry

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