草庐IT

Springboot实现ENC加密

全部标签

c# - 在引擎盖下使用弱引用实现 C# 事件是个好主意吗?

我一直在想是否值得使用类似以下内容(粗略的概念验证代码)来实现弱事件(在适当的地方):classFoo{privateWeakEvent_explodedEvent=newWeakEvent();publiceventWeakEvent.EventHandlerExploded{add{_explodedEvent+=value;}remove{_explodedEvent-=value;}}privatevoidOnExploded(){_explodedEvent.Invoke(this,EventArgs.Empty);}publicvoidExplode(){OnExplode

c# - 我怎样才能实现我自己的外部类型?

在我们的产品中,我们有称为“服务”的东西,它们是产品不同部分之间(尤其是语言之间——内部语言、C、Python和.NET)之间的基本通信方式。目前代码是这样的(Services.Executeutilizingparamsobject[]args):myString=(string)Services.Execute("service_name",arg1,arg2,...);我宁愿能够编写这样的代码并获得类型检查和更简洁代码的好处:myString=ServiceName(arg1,arg2,...);这可以通过一个简单的函数来实现,publicstaticstringServiceN

c# - 使用 HMAC-SHA1 加密创建 OAuth 签名返回 HTTP 401

问题我需要对需要OAuth加密的API进行身份验证。我的方向是正确的,但我确信我的签名基本字符串有问题。由于HMACSHA1哈希基于key和BaseString,因此我得到了错误的oauth_signature。OAuthSigningProcess到目前为止我已经能够收集到所有必需的数据,其中包括:ConsumerKeyConsumerSecretAccesTokenAccesSecretSha1HasedValue(BasedonKeyandMessage,whereMessageisthesignatureBasestring)SignatureBaseString问题由于签名无

c# - 为什么 Enumerable.Range 实现 IDisposable?

只是想知道为什么Enumerable.Range工具IDisposable.我明白为什么IEnumerator确实如此,但是IEnumerable不需要它。(我在玩我的.Memoise()实现时发现了这一点,它有类似的语句if(enumerableisIDisposable)((IDisposable)enumerable).Dispose();出于好奇,我在它的“sourcefinished”方法中放置了一个断点,并由测试触发。) 最佳答案 Enumerable.Range在其方法主体中使用yieldreturn。yieldret

c# - C#泛型是如何实现的?

我曾认为C#中的泛型的实现方式是在运行时或编译时生成新的类/方法/你有什么,当使用新的泛型类型时,类似于C++模板(我从未真正研究过,我很可能是错的,对此我很乐意接受更正)。但是在我的编码中我想出了一个确切的反例:staticclassProgram{staticvoidMain(){TesttestVar=newTest();GenericTestgenericTest=newGenericTest();intgen=genericTest.Get(testVar);RegularTestregTest=newRegularTest();intreg=regTest.Get(test

c# - 如何注册两个实现然后在 .Net Core 依赖注入(inject)中获得一个

我的部分代码依赖于同一接口(interface)的多个实现,而其他部分依赖于其中一个实现。我正在注册如下实现:services.AddSingleton();services.AddSingleton();然后在需要时获取两个实现,例如:varimplementations=serviceProvider.GetServices();我的问题是当我需要其中之一时,我正在尝试以下返回null的方法:varfirstImplementation=serviceProvider.GetService();当然我可以使用:varimplementations=serviceProvider.G

c# - 高效 XML 的 .NET 实现

我正在将大型数据库导出为xml格式。需要将此XML数据压缩为尽可能小的格式。我听说过很多有关高效XML(EXI)的信息,想知道是否有.NET实现以便可以从代码中调用它...有没有人有这方面的例子,因为在线资源似乎有点稀少...... 最佳答案 原来微软创建了他们自己的二进制XML格式/编码,称为MC-NBFX(吸引人的嗯)。从.NET3.0开始,这是.NET框架和WCF的一部分。有关详细信息,请参阅:[MC-NBFX]:.NETBinaryFormat:XMLDataStructureWCFBinaryXMLanddictionar

c# - .NET 中的 ECDiffieHellmanCng 是否具有实现 NIST SP 800-56A,第 5.8.1 节的 key 派生函数

我手头有一项任务需要使用NISTSP800-56A第5.8.1节中描述的key派生函数来派生keyMaterial。我不是密码学专家,所以如果问题很幼稚,请原谅。这是我到目前为止所做的:我有对方的公钥和我的私钥现在我尝试使用C#(.NET4)ECDiffieHellmanCng类使用ECDH1.3.132.1.12生成共享key,如下所示://TheGetCngKeymethodreadstheprivatekeyfromacertificateinmyPersonalcertificatestoreCngKeycngPrivateKey=GetCngKey();ECDiffieHel

c# - 如何使用Task Parallel Library(TPL)实现重试逻辑

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Retryataskmultipletimesbasedonuserinputincaseofanexceptionintask我正在寻找一种在TPL中实现重试逻辑的方法。我想要一个通用的函数/类,它能够返回一个任务,该任务将执行给定的操作,并且在出现异常的情况下将重试该任务,直到给定的重试次数为止。我尝试使用ContinueWith并在出现异常时让回调创建一个新任务,但它似乎只适用于固定数量的重试。有什么建议吗?privatestaticvoidMain(){TasktaskWithRetry=Create

c# - 如何实现无限集合类?

我正在为离散数学设计一个类库,但我想不出一种方法来实现infiniteset.到目前为止我所拥有的是:我有一个抽象基类Set,它实现了接口(interface)ISet。对于有限集,我派生了一个FiniteSet类,它实现了每个set方法。然后我可以像这样使用它:FiniteSetset1=newFiniteSet(1,2,3);FiniteSetset2=newFiniteSet(3,4,5);Console.WriteLine(set1);//{1,2,3}Console.WriteLine(set2);//{3,4,5}set1.UnionWith(set2);Console.W