我注意到,当我通过简单的注入器添加装饰器时,该容器不会超出范围.有人知道这是否可以预期吗?如果我不添加装饰器,则说明该容器是垃圾收集的.否则,不是.我应该采取什么措施来强制清理?
这是一个简单的例子.如果添加了装饰器,则在“运行”完成后,容器仍在内存中.如果未添加装饰器,则容器将进行GC处理.public interface IDoSomething { }
public class DoSomething: IDoSomething { }
public class DoSomethingDec1: IDoSomething {p...
我来自Ninject,但我决定尝试一下Autofac,因为它似乎更加活跃.到目前为止,我可以说注册装饰器并不像使用.WhenInjectedExactlyInto语法在Ninject中那样简单.无论如何,因为我是Autofac新手,所以请多多包涵.
这是问题所在:
我具有由A_Decorator装饰的类型A实现接口IA. A_Decorator实现接口IA和IB,并且依次应由同时实现IA和IB的AB_Decorator装饰. AB_Decorator具有IA和IB类型的两个依赖关系(因此,这是两者的装饰器),但是它们都应解析为...
最初创建时,我有一个装饰器链,如下所示:IType calculator = new TypeADecorator(new TypeBDecorator(new TypeCDecorator(new MyCalculator())));这些装饰器中的每一个都会进行数据库查找,以获取用于计算的数据
但是,并非每次都使用所有这些装饰器.因此,潜在的冗余数据库调用将不返回任何内容
因此,我认为最好根据使用习惯来动态创建装饰器链
例如
如果我有一个表示每个被使用的布尔值:bool useTypeA;
bool useTypeB;
bool useTyp...
我纳闷,因为没有办法像这样在C#中实现通用Decorator类:public class Decorator<TDecoratorIterface> : TDecoratorInterface
{public TDecoratorInterface Component {get; private set;}protected Decorator(TDecoratorInterface component){Component = component;}
}像这样使用:public interface IDogDecorator
{void Bark();
}public class Dog : IDogDecorator
{public void Bark(){Console.Write("I am a dog");}
}public...
我试图找出如何在WPF中实现所谓的“拖动装饰者”(我相信是这样-尚无WPF经验).我已经搜寻并尝试了不同的提议解决方案几天了,但是没有一个看起来像我想要的.我想尽可能地接近Windows的本机外观.
这是半透明的图像,当我们在Firefox中拖动地址栏地球仪或在IE中拖动BigBlueE?时,我们在鼠标指针的上方和左侧略有看到.
双击并在此页面上拖动一个单词,您将明白我的意思.光标保持为Cursors.No,直到遇到TextBox,这时我们看到要拖动的文本的图...
我有一个IAppSettingsLoader接口,该接口抽象了文件IO以加载我的app.config文件.public interface IAppSettingsLoader
{IEnumerable<KeyValuePair<string, string>> LoadAppSettings();
}我有一个加载实际文件的类:public class FileAppSettignsLoader : IAppSettingsLoader
{public IEnumerable<KeyValuePair<string, string>> LoadAppSettings(){// Perform actual loading through ConfigurationManager.AppSettings}
}然后我有...
我将举一个非常简单的例子.class Implementation: IMyInterface
{string mArg;public Implementation(string arg){mArg = arg;}public DoStuff(object param){// snip}
}class Decorator: IMyInterface
{IMyInterface mWrapped;public Decorator(IMyInterface wrapped){mWrapped = wrapped;}public DoStuff(object param){var result = mWrapped.DoStuff(param);// snipreturn result;}
}现在,我需要实现构造函数的参数,我在运行时...
我想不出一个更好的方法来表达这一点,所以它可能就在那里,但我不知道它的用语.我有许多用于访问不同数据存储的类,它们遵循以下模式:interface IUserData {User GetUser(uint id);User ByName(string username);
}class UserData : IUserData {...
}class AuthorizedUserData : IUserData {IUserData _Data = new UserData();public User GetUser(uint id) {AuthorizationHelper.Instance.Authorize();return _Data.GetUser(id);}p...
我们使用基于Ninjects约定的绑定来自动将一组命令和查询绑定到它们的处理程序.到目前为止,我们有一个装饰器使用以下工作.
绑定所有没有属性:Kernel.Bind(x =>x.FromThisAssembly().SelectAllClasses().InheritedFrom(typeof(ICommandHandler<>)).WithoutAttribute<DoCheckAttribute>().BindAllInterfaces());使用属性绑定所有:Kernel.Bind(x =>x.FromThisAssembly().SelectAllClasses().InheritedFrom(typeof(ICommandHandler<>)...
很简单,我想创建一些调整大小/重新调整的装饰,以附加到FrameworkElement,如果他们使用正常的装饰,将允许用户调整元素的大小,如果他们使用底部,将允许他们重新调整元素的重新调整(不一定是统一) – 正确的装饰并按住SHIFT按钮,同时这样做.
我已经尝试了各种方法来实现这一目标,但我总是最终将装饰者自己缩放,因此他们最终会变得庞大,或者拥有巨大的边界.我已经开始使用相对于窗口的位置来定位它们并忽略应用于AdornedElement的Rende...
我有以下DataTemplate:<DataTemplate><Grid>
<1-- Content -->
</Grid></DataTempalte>我想在Grid的内容之上放置一个装饰器.
我怎样才能做到这一点?
我想要使??用的装饰是另一个网格.
我们可以只用纯XAML吗?
谢谢解决方法:我使用以下代码获得了非常好的经验:
http://www.codeproject.com/Articles/54472/Defining-WPF-Adorners-in-XAML
在您的代码库中添加一些类后,您可以在Xaml中定义Adorners,如下所示:<local:AdornedContro...