jjzjj

c# - 如何防止类在工厂外被实例化

我有一个工厂。我不想让这个工厂生产的类在工厂外被实例化。如果我让它们抽象、静态,或者给它们私有(private)构造函数,那么它们将根本无法实例化!这是语言限制还是什么?我不想让这个varawcrap=newExtrude2013();//BAD!!!awcrap.extrudify();//Idon'twanttoallowthis其余代码:usingSystem;namespacetestie{publicenumExtrudeType{Extrude2013,Extrude2014}publicinterfaceIExtrudeStuff{voidextrudify();}pub

c# - C#中的Delphi类

我知道以前有人问过这个问题,但我还没有看到简短、明确的答案,所以我希望他们不会删除这个问题,现在我会得到一个明确的答案:我目前正在使用C#5.0;.NET4.5;VS2012。尽管我用C#做了很多工作,但我主要是Delphi人。在Delphi中,我编写了数百个使用以下设计的类工厂(此处已简化很多):unituFactory;interfacetypeTClassofMyClass=classofTMyClass;TFactoryDict=TDictionary;varfDict:TFactoryDict;implementationprocedureinitDict;beginfDic

c# - Unity 的自定义对象工厂扩展

我正在使用UnityIoC容器,我需要拦截对特定基础接口(interface)的任何Resolve调用,并运行我自己的自定义代码来构造这些类型。换句话说,在下面的示例代码中,当我调用container.Resolve()时,如果它没有具体实现类型的实例,它会调用MyFactoryFunction构造一个,否则我希望它返回缓存的副本。标准的Unity容器无法构造这些对象(更新:因为它们是.NET远程对象,所以具体类不存在于本地计算机上的任何程序集中),我不想预先创建它们并使用RegisterInstance存储它们。interfaceIFoo:IBase{...}interfaceIFo

c# - 具有参数条件的简单工厂,使用 Unity 2.0

假设我有一个简单工厂(SimpleProductFactory)使用条件参数来确定如何创建Product,如下所示:publicstaticclassSimpleProductFactory{publicstaticProductMakeProduct(Conditioncondition){Productproduct;switch(condition){caseCondition.caseA:product=newProductA();//Otherproductsetupcodebreak;caseCondition.caseA2:product=newProductA();//

c# - 简易喷油器 : Factory classes that need to create classes with dependencies

我有一个工厂类,它创建了几个不同类型的类。工厂在容器中注册。鉴于它们也具有依赖性,在工厂内部创建类的推荐方法是什么。我显然想避免对容器的依赖,但如果我新建这些类,那么它们将不会使用容器。例如publicclassMyFactory{publicIMyWorkerCreateInstance(WorkerTypeworkerType){if(workerType==WorkerType.A)returnnewWorkerA(dependency1,dependency2);returnnewWorkerB(dependency1);}}所以问题是我从哪里获得这些依赖项。一种选择是使它们成

c# - Task.Factory.StartNew 或 Parallel.ForEach 用于许多长时间运行的任务?

这个问题在这里已经有了答案:9年前关闭。PossibleDuplicate:Parallel.ForEachvsTask.Factory.StartNew我需要在ThreadPool中运行大约1,000个任务每晚一次(这个数字将来可能会增加)。每个任务都在执行长时间运行的操作(从Web服务读取数据)并且是非CPU密集型.AsyncI/O不是此特定用例的选项。给定一个IList参数,我需要DoSomething(stringx).我试图在以下两个选项之间进行选择:IListtasks=newList();foreach(varpinparameters){tasks.Add(Task.F

c# - 如何在 Autofac 注册中调用异步方法?

我想调用awaitableasync注册过程中的方法是这样的://buildervariablecontainsAutofacContainerBuilderbuilder.Register((async(context,parameters)=>//needasynchere{varsomeClass=newSomeClass(context.Resolve());awaitsomeClass.SomeAsyncInitMethod();//needtoawaitresultreturnsomeClass;})).As().SingleInstance();SomeClass工具IS

c# - 如何确定 WCF 服务已准备就绪?

我有以下场景:我的主应用程序(APP1)启动了一个进程(SERVER1)。SERVER1通过命名管道托管WCF服务。我想连接到这个服务(来自APP1),但有时它还没有准备好。我创建了ChannelFactory,打开它并让它生成一个客户端。如果我现在在生成的客户端上调用一个方法,我会收到一条异常消息,告诉我找不到Enpoint:varfactory=newChannelFactory(newNetNamedPipeBinding(),newEndpointAddress("net.pipe//localhost/myservice");factory.Open()varClient=f

c# - 使用 WIF 创建 SAML 身份验证请求

似乎大多数WIF信息都对在整个应用程序中启用联合身份验证很有用。我有兴趣使用API创建SAML身份验证请求并接收/解释SAML响应。我在SOReadingSAMLAttributesfromSAMLToken上找到了以下帖子这让我在接收和解释SAML响应方面朝着正确的方向前进。谁能给我更多关于如何使用API创建SAML请求的信息?如能提供有关API的更多信息(阅读Material、视频等),我们将不胜感激。 最佳答案 这是oursamples中的一个小例子展示了如何以编程方式创建对STS的(SAML)安全token的请求:priva

c# - Task.Factory.FromAsync 和 BeginX/EndX 之间的区别?

在使用来自TcpClient的标准BeginRead和EndRead方法以及使用Task.Factory.FromAsync时,我有非常相似的代码。这里有一些例子..错误处理代码没有显示。Task.Factory.FromAsync:privatevoidRead(Statestate){Taskread=Task.Factory.FromAsync(state.Stream.BeginRead,state.Stream.EndRead,state.Bytes,state.BytesRead,state.Bytes.Length-state.BytesRead,state,TaskCr