我的第一个目标是使用泛型基于特定接口过滤类型.
我的第二个目标是获取泛型参数本身的类型.
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.
提前致谢!
我制作了一个配置文件,它有一些以下格式
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的应用程序.
编辑:
是否可以写入所有变量名称及其值,当我读取文件时,它会自动声明这些变量并赋值?
我只是想知道是否有人将他们的助手类或方法存储在一个单独的程序集中,为什么......只是为了清理它们?我看过很多关于在你的MVC项目中使用帮助文件夹的帖子,这让我回到了ASP.NET的旧时代,人们使用App_code文件夹,而不是像这样将物理分离到自己的项目中.
同样,没有人在做真正的架构会将模型放在MVC Web组件的某个文件夹中.他们会进入MyApp.DataLayer程序集或MyApp.Models或类似的东西.
你能提供一个与Twitter用户名匹配的正则表达式吗?
如果提供Python示例,则额外奖励.
我正在读一本关于游戏AI的书.
正在使用的术语之一是规范化矢量,该矢量将矢量转换为单位.要做到这一点,您必须将每个维度x,y并z通过它的大小.
在我们对它做任何事情之前,我们必须把矢量变成一个单元.为什么?
任何人都可以给出一些我们必须使用单位向量的场景吗?
谢谢!
所以我假设人们仍然只使用控制器逻辑之外的业务层?如果是这样,绘制的灰线在哪里,你在控制器类中没有放入你的业务层项目,反之亦然?在我看来,Controllers完全消除了对MVC应用程序中业务层的需求.
我对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) 我知道trac有xmlrpc插件.但我不是我的trac网站,也没有管理员权限.我只有一个普通的用户帐户,有限的权限.
除了显而易见的低级别服务(通过模拟Web浏览器提交请求)之外,还有更好的方法吗?
我主要对以下内容感兴趣:
我有一个功能:
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的析构函数只被调用一次.这是保证还是编译器优化?
这是我正在运行的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)