jjzjj

castle-dynamicproxy

全部标签

c# - 真正的拦截器对我的 C# 类做了什么?

我被要求在我的asp.netweb应用程序中实现城堡动态代理,我正在阅读从CastleProject获得的几篇文章。和CodeProject关于asp.netweb应用程序中的城堡动态代理....这两篇文章都与创建拦截器有关,但我不明白为什么拦截器与类一起使用......为什么我应该拦截行为正常的类? 最佳答案 假设您的类需要为某个操作做3件事:执行安全检查;记录方法调用;缓存结果。让我们进一步假设您的类(class)对您配置安全性、日志记录或缓存的特定方式一无所知。您需要依赖这些东西的抽象。有几种方法可以解决这个问题。一种方法是设

c# - 如何使用 PFX(Bouncy CaSTLe 或其他)以编程方式对可执行文件进行代码签名

我正在尝试确定使用BouncyCaSTLe、托管代码或来自C#的非托管代码对可执行文件进行代码签名的最佳方法。由于CAPICOM现在已被弃用,我想如果需要非托管地完成,mssign32.dll中的SignerSign方法之一是最好的方法。这个答案(https://stackoverflow.com/a/3952235/722078)看起来很接近,但它会生成一个.p7m文件,虽然看起来大小合适,但无法正确运行(显然在运行前重命名为.exe)。此处提问者(API/Librarytoreplacesigntool.exe)给出的解决方案似乎很有前途且管理得当,但就像TomCanham在下面的

c# - caSTLe-windsor 中的多装饰器模式

我们正在重新设计一些遗留软件以使其更易于测试,并决定使用依赖注入(inject)和CaSTLe.Windsor来帮助我们。首先,我们的目标:*许多装饰器都在数据流上工作。*装饰器的多种组合是可能的,并且可能需要每种情况下的根节点从不同的地方获取数据。从技术上讲,我们的设计如下:interfaceIUpdateableValue{TGet();};我们有使用多个组件检索三组数据,所有组件都实现IUpdateableValue()(伪代码):JsonParser(Decompressor(Decrypter(decryptionKeyFileCache(filename,HttpWebDo

c# - Bouncy CaSTLe 的 X509V3CertificateGenerator.SetSignatureAlgorithm 标记为已过时。我该怎么办?

我正在尝试创建一个自签名的可信证书。我正在使用nuget的BouncyCaSTLe,答案在thisquestion上.这是该页面上的代码:publicstaticX509Certificate2GenerateSelfSignedCertificate(stringsubjectName,stringissuerName,AsymmetricKeyParameterissuerPrivKey,intkeyStrength=2048){//GeneratingRandomNumbersvarrandomGenerator=newCryptoApiRandomGenerator();var

c# - PostSharp 和 CaSTLe 动态代理有什么区别?

只是想知道这些库之间的主要区别是什么,它们在特性和功能上有何不同。希望获得比通过Google查询所能找到的更多信息... 最佳答案 主要区别在于何时将AOP代码合并到您的程序中“Postsharp通过在编译时编织工作”动态代理在运行时动态生成轻量级.NET代理。参见:ApplyingAOP 关于c#-PostSharp和CaSTLe动态代理有什么区别?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

c# - 仅使用 Bouncy CaSTLe 读取 PEM RSA 公钥

我正在尝试使用C#读取仅包含RSA公钥的.pem文件。我无权访问私钥信息,我的应用程序也不需要它。文件myprivatekey.pem文件以开头-----开始公钥-----并以-----ENDPUBLICKEY-----.我目前的代码如下:Org.BouncyCastle.Crypto.AsymmetricCipherKeyPairkeyPair;using(varreader=File.OpenText(@"c:\keys\myprivatekey.pem"))keyPair=(Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair)newOr

c# - 为什么我的 CaSTLe Windsor Controller 工厂的 GetControllerInstance() 被调用为空值?

我正在使用CaSTLeWindsor来管理Controller实例(除其他外)。我的Controller工厂看起来像这样:publicclassWindsorControllerFactory:DefaultControllerFactory{privateWindsorContainer_container;publicWindsorControllerFactory(){_container=newWindsorContainer(newXmlInterpreter());varcontrollerTypes=fromtinAssembly.GetExecutingAssembly

c# - 获取代理对象的底层类型

我正在使用CaSTLeDynamicProxy,我的ViewModels是一个代理,像这样:namespaceMyApplication.ViewModels{publicclassMyViewModel:BaseViewModel,IMyViewModel{}}虽然我的View模型的代理看起来像这样:{Name="IRootViewModelProxyffecb133f590422098ca7c0ac13b8f98"FullName="IRootViewModelProxyffecb133f590422098ca7c0ac13b8f98"}我想获取被代理的实际类型的实际类型或命名空间

c# - 应用面向方面的编程

我一直在使用一些基本的AOP样式解决方案来处理横切关注点,例如安全性、日志记录、验证等。我的解决方案围绕着CastleWindsor展开。和DynamicProxy,因为我可以使用基于Boo的DSL来应用所有内容,并保持我的代码没有属性。我被告知在周末看一下PostSharp因为它应该是一个“更好”的解决方案。我已经快速浏览了PostSharp,但我被属性的使用推迟了。有没有人尝试过这两种解决方案并愿意分享他们的经验? 最佳答案 PostSharp的几个小问题...我在使用PostSharp时遇到的一个问题是,在使用asp.net时

c# - 如何获得当前的 CaSTLe Windsor 容器?

我是CaSTLeWinsorNoob。我有一个一团糟的WebForm项目。我正在尝试解决测试用户注册的依赖性。如何到达当前的WindsorContainer?IWindsorContainercontainer=???;IRegistrationLogicregistrationLogic=container.Resolve();_registrationLogic.Register();这是我的Bootstrap:publicclassWindsorConfigTask:ICastleBootstrapperTask{publicvoidExecute(){Container.Add