如何通过 c#code 统一启动“play store”(google)?我无法打开 Play 商店应用程序。请帮助我 这个问题意味着在“Google Play 商店”应用程序中打开链接我的游戏,例如 google play 中的链接:com.ds.aa 请帮助我
我有一个Prism应用程序,可以Unity进行依赖注入。
我有一个类具有以下继承:
ISomeService --> ISomeMoreSpecializedService --> SomeMoreSpecializedService
Run Code Online (Sandbox Code Playgroud)
ISomeService用于一些非特定于应用程序的模块。ISomeMoreSpecializedService正在扩展之前的接口,添加一些特定于应用程序的概念SomeMoreSpecializedService 是应该在特定软件中使用的唯一实现我的专业服务如下:
public class SomeMoreSpecializedService : SomeService, ISomeMoreSpecializedService
{
public SomeMoreSpecializedService(ISomeDependency dependency){
}
}
Run Code Online (Sandbox Code Playgroud)
我在棱镜模块中:
public class MyModule : IModule
{
public void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<ISomeService, SomeMoreSpecializedService>();
containerRegistry.RegisterSingleton<ISomeMoreSpecializedService, SomeMoreSpecializedService>();
}
public void OnInitialized(IContainerProvider containerProvider)
{
}
}
Run Code Online (Sandbox Code Playgroud)
但我的问题是我收到了两个不同的单例。我该怎么做?
之前我正在构建一个new SomeMoreSpecializedService(),然后在做RegisterInstance。这到目前为止一直有效,但现在我需要注入一些依赖项。
我继承了这个项目,我通常不统一作为我的依赖解析器,所以请原谅我,如果这是一个愚蠢的问题。
当我尝试解决接口时,我收到以下消息。
内部异常1:
InvalidOperationException:没有可用于类型 [ProjectName].ITest 的公共构造函数
内部异常2:
InvalidRegistrationException:引发了“Unity.Exceptions.InvalidRegistrationException”类型的异常。
现在,在有人跳到我身上并说我没有构造函数之前,该类看起来像这样......它有一个没有参数的构造函数。
namespace ProjectName
{
public class Test : ITest
{
public Test()
{
}
public int Foo() => 99;
}
public interface ITest
{
int Foo();
}
}
Run Code Online (Sandbox Code Playgroud)
所以有一个没有参数的构造函数 这是试图解析该类的类。
[Route("api/Test")]
public class TestController : ApiController
{
[Dependency]
public ITest Test { get; set; }
public TestController()
{
}
[HttpPost]
public IHttpActionResult Post()
{
var i = Test.Foo();
return Ok();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在将 .NET 应用程序依赖注入框架从 .NET 迁移Unity Container到Microsoft.Extensions.DependencyInjection.
现在我没有找到将接口的现有实例注册到 serviceCollection 的方法。在 Unity 中,这可能是这样的:
_unityContainer.RegisterInstance<IInterface>(myObject);
Run Code Online (Sandbox Code Playgroud)
在IServiceCollection我只找到AddSingleton, AddScoped,AddTransient所有这些都只接受类型。
(我知道这样做一开始可能是不好的做法,但不幸的是它不在我的控制之下。)
.net c# dependency-injection unity-container microsoft-extensions-di
有没有办法通过xml配置来表示对象上的静态工厂方法?
.net dependency-injection ioc-container inversion-of-control unity-container
在ASP.Net MVC 2应用程序中使用Unity我对控制器的各种依赖关系正确实例化.但是,我想确保用户的当前IPrincipal将通过注入传递到较低级别的服务,存储库等.
因此,在较低级别的服务中,我有类似的东西:
[Dependency] IPrincipal CurrentUser {get; set;}
Run Code Online (Sandbox Code Playgroud)
如果我使用Property Dependency Injection,我得不到我想要的东西,因为Controller在用户主体可用之前被实例化,并且在任何情况下Unity都不知道获取当前用户凭据.
所以我想要的是能够将当前用户的IPrincipal(或可能是RolePrincipal)注入到Controller的一个依赖项中.
我怎样才能做到这一点?
我是Unity 2.0的AOP功能的第一次使用者,并希望得到一些建议.我的目标是能够在ASPX页面中记录方法调用,如下所示:
public partial class Page2 : Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[Log]
private void Testing()
{
}
}
Run Code Online (Sandbox Code Playgroud)
这是以下代码LogAttribute:
public class LogAttribute : HandlerAttribute
{
public override ICallHandler CreateHandler(IUnityContainer container)
{
return new LogHandler(Order);
}
}
Run Code Online (Sandbox Code Playgroud)
现在LogHandler:
public class LogHandler : ICallHandler
{
public LogHandler(int order)
{
Order = order;
}
public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
{
string className = input.MethodBase.DeclaringType.Name;
string methodName = input.MethodBase.Name;
string preMethodMessage = string.Format("{0}.{1}", …Run Code Online (Sandbox Code Playgroud) 在Microsoft Unity IoC中,如果我调用Resolve<SomeType>(),我可以保证返回的对象是在当前会话期间创建的对象吗?
例如,三个用户登录,并且假设SomeType在容器中创建的对象具有针对每个用户的不同值.是否会调用Resolve返回为当前用户创建的对象?或者它会做一些愚蠢的事情,比如返回创建的最后一个?
由于一些环境问题,我自己也遇到了麻烦,我需要尽快检查一下,所以如果有人能回答这个问题,那将非常有帮助!
编辑
请原谅我,我是Unity的新手,但根据我在这里阅读的内容,似乎我应该能够在容器中注册具有唯一名称的对象,并通过该名称检索它们.那么,我不能使用会话ID或会话中持续存在的其他值来检索我的对象吗?
我们在ASP.Net解决方案中使用Microsofts Unity IOC容器.
在其中一个顶层中,我们使用RegisterInstance方法.然后我们使用Resolve方法将其降低.
在查看另一个问题时,我们已经看到ASP.Net具有线程敏捷性,即请求可以跳转线程.
所以问题是如果我们在一个线程上注册一个实例,并且在我们解析实例之前请求跳转线程,我们会回到正确的实例吗?
c# asp.net multithreading inversion-of-control unity-container
我对单元测试很新,所以如果这不是一个非常好的问题,我会道歉.
我有一个主要的Web项目,以及一个附带的NUnit测试库.我正在使用Unity将接口注入主项目中的控制器.例如:
public class EquipmentController : Controller
{
private readonly ILocationRepository locationContext = null;
private readonly IRepository<EquipmentCategory> categoryContext = null;
private readonly IEquipmentRepository equipmentContext = null;
private readonly IRecordRepository recordContext = null;
public EquipmentController(ILocationRepository locationRepo, IRepository<EquipmentCategory> categoryRepo, IEquipmentRepository equipmentRepo, IRecordRepository recordRepo)
{
this.locationContext = locationRepo;
this.categoryContext = categoryRepo;
this.equipmentContext = equipmentRepo;
this.recordContext = recordRepo;
}
Run Code Online (Sandbox Code Playgroud)
Web应用程序本身实际上按预期工作.但是,我在尝试编写测试用例时遇到了问题.例如,在测试库中,我有以下内容:
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Practices.Unity.Mvc;
using Microsoft.Practices.Unity.ObjectBuilder;
using Microsoft.Practices.Unity.StaticFactory;
using Moq;
using ITEquipmentDatabase;
using ITEquipmentDatabase.Models; …Run Code Online (Sandbox Code Playgroud) unity-container ×10
c# ×6
asp.net-mvc ×3
.net ×2
aop ×1
asp.net ×1
google-play ×1
prism ×1
unit-testing ×1