我有2个组件:
大会1:
interface IWeapon {
int Might { get; }
}
[Export("sword")]
public class Sword : IWeapon {
public int Might {
get { return 10; }
}
}
Run Code Online (Sandbox Code Playgroud)
大会2:
interface IWeapon {
int Might { get; }
}
var catalog = new AssemblyCatalog(typeof(Ninja.Sword).Assembly);
var container = new CompositionContainer(catalog);
// not allowed to use the IWeapon def in assembly 2
var sword = container.GetExportedValue<IWeapon>("sword");
Run Code Online (Sandbox Code Playgroud)
我知道如何让它发挥作用.我可以向MEF(Managed Extensibility Framework)询问该对象,或者让它导出正确的IWeapon而不是按名称导出对象.
如果所有接口点都已实现,MEF可以为我做"鸭子"打字并返回代理对象吗?
我正在使用Linux Ubuntu Intrepid Ibex并使用GCC编译C++文件,但是当我编译时,gcc生成a.out文件,即可执行文件,但我如何制作Linux可执行文件?谢谢!
我想使用RESTful架构构建我的Web服务来提供JSON数据.
但我只想要我自己的客户端应用程序可以从我的Web服务请求.
基本上,我的Web服务包含非公共消费的敏感数据,但我想以这种方式构建它,以便我可以构建许多连接到我的Web服务的不同客户端应用程序.
非常感谢任何想法,谢谢.
我试图在两个观点之间翻转.这很容易,代码在下面,但我也想同时翻转用于执行翻转的按钮.
当您在播放曲目时,您可以在iPod应用程序中看到此行为; 点击翻盖按钮可以在封面图片和曲目列表之间翻转,但同时会翻转按钮.
这是导航控制器上的一个页面,我要翻转的按钮是rightBarButtonItem.
这是我到目前为止的代码.这会翻转视图,但不会翻转右边的BarButton.
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: 0.5f];
[UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
showingBackside = !showingBackside;
if (showingBackside) {
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft
forView: self.view
cache: YES];
[self.view addSubview: backside.view];
[frontside.view removeFromSuperview];
} else {
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight
forView: self.view
cache: YES];
[self.view addSubview: frontside.view];
[backside.view removeFromSuperview];
}
// flip image, too
NSString *newImage = showingBackside ? @"backside.png" : @"frontside.png";
[(self.navigationItem.rightBarButtonItem) setImage: [UIImage imageNamed: newImage]];
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
(此处的图像翻转代码可能无法编译;我在尝试解释我尝试做的事情之后添加了它.)
在我遇到麻烦的地方,我想更改导航控制器中最右边的按钮,以便同时翻转.
我该怎么做呢?我的动画是什么视图,我是作为同一动画块的一部分还是作为单独的动画块执行的?任何提示将不胜感激,我绝对没有很好的处理动画.
无论如何,对于我来说,我有一个相当复杂的观点,它有一些带有自定义界面项的"托盘".它们滑入和滑出我的根视图.我想嵌套(addSubview)视图中的项目.在显示之前每个都需要一些设置......并且没有一个可以在IB中配置(它们是UIView的子类).
我想知道为每个"托盘"子类UIViewController是否有意义,然后将VC的视图属性指向"托盘"视图,我可以使用我的自定义UIView对象填充该视图.这样我就可以利用UIViewController中的viewDidLoad等方法.
我不知道其他人这样做 - 至少在我看过的几个样本中.这会产生一种情况,即屏幕上会同时显示多个视图控制器.从导航控制器本身到rootViewController及其视图,然后是这些小型trayViewControllers的任意数量(允许,屏幕大小允许).如果是这样,响应者链如何工作?我假设它从最低的UIView到其封闭的VC,然后到那个VC的父视图,然后该视图的VC等等重复,重复..直到UIApplication ...我是在寻找麻烦吗?
或者,我只是坚持使用UIViews并将子视图添加到子视图等等.
假设我有一个正则表达式,可以正常查找文本文件中的所有URL:
(http://)([a-zA-Z0-9\/\.])*
Run Code Online (Sandbox Code Playgroud)
如果我想要的不是URL而是反向 - 除了URL之外的所有其他文本 - 是否有一个简单的修改来获得这个?
Python 3.x将低级模块'thread'重命名为'_thread' - 我不明白为什么在文档中.有人知道吗?
我需要得出7个潜在投入的重要价值.鲍勃叔叔敦促我避免使用那么多参数的函数,所以我已经提取了这个类.所有参数现在都是属性,我留下了一个没有参数的计算方法.
我认为"那个"可能是一个财产,但我不确定这是否是惯用的C#.
我应该将最终结果作为属性公开,还是作为没有参数的方法公开?一般的C#程序员会发现令人困惑或令人反感的属性吗?那么Alt.Net的人群呢?
decimal consumption = calculator.GetConsumption(); // obviously derived
decimal consumption = calculator.Consumption; // not so obvious
Run Code Online (Sandbox Code Playgroud)
如果是后者:我应该将中间结果声明为[私有]属性吗?由于重法提取,我有几个中期结果.其中许多不应该是公共API的一部分.但是,其中一些可能很有趣,如果我可以将它们作为属性访问,我的表达式看起来会更清晰:
decimal interim2 = this.ImportantInterimValue * otherval;
Run Code Online (Sandbox Code Playgroud)
快乐实验部:
在VS2008中调试我的代码时,我注意到我一直将鼠标悬停在计算中间结果的方法调用上,期望将鼠标悬停在返回值上.在将所有方法转换为属性之后,我发现将中间结果公开为属性极大地帮助了调试.我很满意,但对可读性的担忧仍然存在.
临时价值声明看起来更加混乱.但是,没有括号,表达式更容易阅读.我不再觉得有必要用动词启动方法名称.对比:
// Clean method declaration; compulsive verby name; callers need
// parenthesis despite lack of any arguments.
decimal DetermineImportantInterimValue() {
return this.DetermineOtherInterimValue() * this.SomeProperty;
}
// Messier property declaration; clean name; clean access syntax
decimal ImportantInterimValue {
get { …Run Code Online (Sandbox Code Playgroud) 带一张Orders桌子:
(OrderID, date, customerID, status, etc)
和一张OrderDetails桌子:
(ParentID, itemID, quantity, price, etc)
我想创建一个SQL查询,它将导出CSV平面文件Order和OrderDetail散布的行.例如,输出可能看起来像这样(H并分别D表示"Header"和"Detail").
"H",2345,"6/1/09",856,"Shipped"
"D",2345,52,1,1.50
"D",2345,92,2,3.25
"D",2345,74,1,9.99
"H",2346,"6/1/09",474,"Shipped"
"D",2346,74,1,9.99
"D",2346,52,1,1.50
Run Code Online (Sandbox Code Playgroud)
不知道从哪里开始这个.有任何想法吗?TIA.
说我有这个代码 -
public interface ParentInterface1 {
public List<? extends ChildInterface1> getChildren();
public void setChildren(List<? extends ChildInterface1> children);
}
public interface ParentInterface2 {
public List<? extends ChildInterface2> getChildren();
public void setChildren(List<? extends ChildInterface2> children);
}
public interface ChildInterface1 {
public String getField();
public void setField(String field);
}
public interface ChildInterface2 {
public String getField();
public void setField(String field);
}
public class LParentImpl implements ParentInterface1, ParentInterface2 {
private List<ChildImpl> list;
public List<ChildImpl> getChildren() {
return list;
}
public void setChildren(List<... wants to …Run Code Online (Sandbox Code Playgroud)