我正在重构一个庞大的代码库中的讨厌,需要找到一个特定的方法,接受一个相当通用的接口的实例,用该接口的特定实现调用.
例如,在NastyStatic是的DoBadThings(IBusinessObject)方法.我有大约50个IBusinessObject在我的业务库中实现的类,包括DontHurtMe : IBusinessObject.
我怎样才能找到每一个电话NastyStatic.DoBadThings(foo),但只能找到foo一个实例DontHurtMe?
编辑:我正在使用某种静态分析工具.在DoBadThings(或类似)中设置动态监视并运行应用程序并不是一个真正的选择.由于我所做的更改,它已经抛出一个异常DontHurtMe,并且有太多的代码路径可以找到所有这些用法(至少在它上线并且我的用户开始抱怨之前).
在我的应用程序中,我有这样注释的方法:
@SomeAnnotation(key1="value1", key2 ="value2")
public void myMethod()
Run Code Online (Sandbox Code Playgroud)
我定义了以下apsect来对这些方法的执行执行一些操作:
@Aspect
public class MyAspect()
{
@Around("@annotation(my.package.SomeAnnotation)")
public Object doSomething(final ProceedingJoinPoint pjp) throws Throwable
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想在我的建议中使用注释值(在上面的示例中为“ value1”和“ value2”)。此时访问注释的方式是什么?
我是在PHP中编写自己的简单语法高亮显示器.我已经完成了基于正则表达式和字符串替换的基本算法,但我真正不知道的是如何禁用替换被注释的关键字.
例如:
/**
* Some class
*
* @property-read $foo
*/
class Test
{
private $foo;
public function __construct()
{
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我的解决方案只是突出显示已定义的关键字(如类或变量),以及已注释的关键字.
解决这个问题的任何方法?
我看到几个与此有关的问题,但我仍然无法找到我正在寻找的答案,所以我发布了我的问题.如果另一个问题得到答案(我只是没有看到),请指出我.
我正在试图找出我的UnitOfWork所属的位置 - 特别是,在使用EF4和Unity与Repository模式时创建.
基本上,我有一个用于实现我的业务逻辑的服务.此服务构造函数接收存储库,因此服务将注入我的存储库.然后,该服务使用注入的存储库对数据存储执行操作 - 但我需要将它们包含在一个工作单元中.
但是,我的工作单元需要注入EF4上下文(或者,在我的情况下,和上下文的接口 - IObjectContext).而且我不确定UoW应该在哪里创建并注入上下文.
以下是我能想到的可能选项,其中没有一个看起来很理想:
在服务构造函数中包含UoW,从而使用工作单元注入服务,然后使用我的EF4上下文注入.但这似乎是错误的,因为我不想在存储库的每个实例上创建我的UoW.
使用container.Resolve进行按需创建以获取UoW的实例,注入我的EF4上下文.这似乎过于不得不经常点击IoC容器,而不是已经有权访问UoW.
将上下文直接注入服务,允许我创建UoW(上下文).这看起来很糟糕,因为我现在已经将上下文暴露给服务,这应该被隔离到存储库.
所以我的问题是,这些方法中的一种是可以接受的,还是有其他方法我没想到?
提前致谢.
entity-framework repository ioc-container unity-container unit-of-work
在如何使用Where In Entity Framework中计算关联实体我得到此查询
但是当我访问queryResult [0] .post.Category或queryResult [0] .post.Tags时它总是空的,因为我没有使用Include.
包括不使用Projection,正如微软在最后一项所述:http://msdn.microsoft.com/en-us/library/bb896317.aspx
var queryResult = (from post in posts
join comment in comments.Where(x=> x.IsPublic) on post.Id equals comment.Post.Id into g
select new
{
post,
post.Author,
post.Tags,
post.Categories,
Count = g.Count()
})
Run Code Online (Sandbox Code Playgroud)
我如何在同一个查询中获取Count,并包含与标签和类别的关系?
为什么EF关系修复不起作用?
c# linq linq-to-entities entity-framework entity-framework-4
知道如何在客户端处理eTags吗?我们计划在我们的应用程序中使用带有来自服务器的图像的eTags.
有关什么是eTag,请参阅:http: //en.wikipedia.org/wiki/HTTP_ETag
可能是一个微不足道的问题,但我希望得到最好的解决方案.
问题:
我有两个或更多工作人员将密钥插入一个或多个表.当两个或多个工作人员试图同时将同一个密钥插入其中一个密钥表时,就会出现问题.典型的问题.
关键表是简单的对.第一列是自动递增整数,第二列是varchar键.
这种并发问题的最佳解决方案是什么?我认为这是一个常见的问题.一种可靠的方法是处理抛出的异常,但不知何故我不相信这是解决这个问题的最佳方法.
我使用的数据库是Firebird 2.5
编辑:
一些额外的信息,以使事情清楚.
典型的这种表是用户表.例如:
1 2056 2 1044 3 1896 4 5966 ...
每个工作人员检查用户"xxxx"是否存在,如果不存在则插入.
编辑2:
仅供参考,如果有人会走相同的路线.IB/FB返回错误代码对(我正在使用InterBase Express组件).检查重复值违规是这样的:
except
on E: EIBInterBaseError do
begin
if (E.SQLCode = -803) and (E.IBErrorCode = 335544349) then
begin
FKeysConnection.IBT.Rollback;
EnteredKeys := False;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud) 在Java,Scala或通常任何JVM语言中,默认情况下会导入一组包.例如,Java会自动导入java.lang,您不需要在Java代码文件中执行此操作.
现在我不知道哪个组件完全处理这个问题(编译器?JVM?),但有没有办法在默认情况下导入其他包甚至类?
假设你有一个包定义了你在整个项目中使用的一组实用函数(一个例子可能scala.math在Scala中),如果你能够在每个数学相关的类中跳过它的导入,那就太好了.
我知道我们可以通过一个简单的循环轻松地做到这一点,但我想说服这个LINQ/Predicate?
string[] columnNames = dt.Columns.?
or
string[] columnNames = from DataColumn dc in dt.Columns select dc.name;
Run Code Online (Sandbox Code Playgroud) 我在Android中创建了自定义ToggleButtons,因为所有按钮都继承自相同的xml,我想根据状态更改它们的行为方式,所以当检查状态时我想改变阴影颜色,但这似乎不可能当前的SDK.
我创建了一个包含button_colors的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:color="#FFFFFF" />
<item
android:color="#000000" />
</selector>
Run Code Online (Sandbox Code Playgroud)
但这似乎只适用于文本颜色而不是文本上的阴影颜色.有什么我想念的吗?而不是在代码中手动为每个按钮执行此操作,因为我希望将其应用于应用程序中的每个按钮.
更新编辑:
我的选择器目前看起来像这样
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:drawable="@drawable/button_gradient_selected" />
<item
android:drawable="@drawable/button_gradient" />
</selector>
Run Code Online (Sandbox Code Playgroud)
但正如我在下面的评论员中所提到的,我似乎无法从这里改变样式/文本颜色阴影,因为它似乎只能采用可绘制的颜色.
当我尝试在此处按钮上放置不同的样式时,它会强制关闭或根据状态不改变样式.当我只尝试在这里放置样式并且在样式中设置drawable它强制关闭.无论哪种方式,它似乎都不起作用.
c# ×3
.net ×2
linq ×2
android ×1
annotations ×1
aop ×1
button ×1
cocoa-touch ×1
concurrency ×1
datatable ×1
delphi ×1
etag ×1
firebird ×1
iphone ×1
java ×1
php ×1
refactoring ×1
repository ×1
scala ×1
spring ×1
sql ×1
uiview ×1
unit-of-work ×1
xml ×1