我的服务层正在缓存很多对memcached的Db请求,这是否使得无法使用Async/Await?例如,我怎么能等待这个?
public virtual Store GetStoreByUsername(string username)
{
return _cacheManager.Get(string.Format("Cache_Key_{0}", username), () =>
{
return _storeRepository.GetSingle(x => x.UserName == username);
});
}
Run Code Online (Sandbox Code Playgroud)
注意:如果密钥存在于缓存中,它将返回"Store"(而不是a Task<Store>),如果缓存中不存在该密钥,则它将执行lambda.如果我将Func更改为
return await _storeRepository.GetSingleAsync(x => x.UserName == username);
Run Code Online (Sandbox Code Playgroud)
并且方法签名为
public virtual async Task<Store> GetStoreByUsername(string username)
Run Code Online (Sandbox Code Playgroud)
由于缓存返回类型,这显然不起作用.
我正在运行此命令
nuget push Package.1.0.0.0.nupkg -s http://mysource.com/ xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -ConfigFile ..\..\.nuget\nuget.config
Run Code Online (Sandbox Code Playgroud)
我收到此错误
UserName: Cannot prompt for input in non-interactive mode.
Run Code Online (Sandbox Code Playgroud)
我已经指定了nuget.config文件,其中包含用户名和cleartextpassword
<packageSources>
<add key="NuGet official package source" value="http://www.nuget.org/api/v2" />
<add key="https://www.nuget.org/api/v2/" value="https://www.nuget.org/api/v2/" />
<add key="PackageName" value="http://mysource.com/nuget" />
</packageSources>
....
<packageSourceCredentials>
<PackageName>
<add key="Username" value="<username>" />
<add key="ClearTextPassword" value="<clearpassword>" />
</PackageName>
</packageSourceCredentials>
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?我在VS2013中运行批处理文件我正在使用的nuget版本是NuGet版本:2.8.50926.602
有没有一种方法可以为给定程序集中的所有类定义默认构造函数。例如,我在程序集中有这样的类-
public class SomeClass
{
public SomeClass(int x, int y)
{
}
}
Run Code Online (Sandbox Code Playgroud)
这些类都需要一个默认的构造函数,但是我不想将所有这些类都用一个默认的构造函数弄乱,所以我该如何使用反射或类似方法呢?(也许是TypeBuilder.DefineDefaultConstructor?)
我有一个SPA + WebAPI应用程序,它们都在同一个项目中.我只希望WebAPI应用程序处理来自目录"api"的请求.所以api下的任何东西都将由服务器处理,其他一切都将由Angular SPA处理.
我现在有
<rewrite>
<rules>
<rule name="AngularJS" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
这工作正常,除非我转到URL
http://localhost/customers/2 (它加载文档,但所有资源都以错误的mime类型进入,因为上面的重定向规则,我已经得出结论)
URL http://localhost/customers工作正常将由我的SPA应用程序路由
除了API目录下的请求之外,如何将所有内容重定向到我的SPA?
如果我有这样的主持人——
public class LandingPresenter : ILandingPresenter
{
private ILandingView _view { get; set; }
private IProductService _productService { get; set; }
public LandingPresenter(ILandingView view, IProductService)
{
....
}
}
Run Code Online (Sandbox Code Playgroud)
考虑到依赖视图不会被注册,我如何向 Autofac 注册这个 Presenter(但 IProductService 会)
builder.RegisterType<LandingPresenter>().As<ILandingPresenter>(); ????
Run Code Online (Sandbox Code Playgroud) 嗨,我需要找到一个大字符串中的所有匹配项,我发现了这个问题
这看起来很完美!唯一的问题是没有用.这个问题和我的问题之间的区别在于,不是使用#\ w +#而是需要使用[[\ w +]].这是我的代码(某人是我的大字符串):
Regex reg = new Regex(@"[[\w+]]");
foreach (Match m in reg.Matches(sb.ToString()))
{
RenderHtmlRecursive(helper, sb, path, m.Value);
}
Run Code Online (Sandbox Code Playgroud)
当我运行这个我得到1匹配:)但值是(m.Value):"t]"
sb是(现在的小文字):卡片[[RegisterText]]
有任何想法吗?
我有一个asp.net MVC站点,它有许多使用InstancePerHttpRequest范围注册的组件,但是我还有一个"后台任务",每隔几个小时运行一次,没有httpcontext.
我想得到一个我的IRepository的实例,它已经像这样注册了
builder.RegisterGeneric(typeof(EfRepository<>)).As(typeof(IRepository<>))
.InstancePerHttpRequest();
Run Code Online (Sandbox Code Playgroud)
如何使用Autofac从非http上下文中执行此操作?我认为IRepository应该使用InstancePerLifetimeScope
我正在使用FluentScheduler,并且遇到一个我有2个注册表类的问题,
FeedRegistry
SitemapRegistry
Run Code Online (Sandbox Code Playgroud)
FeedRegistry应该每15分钟运行一次,sitemapregistry运行6个小时.
我有这个代码:
TaskManager.Initialize(new FeedRegistry());
TaskManager.Initialize(new SitemapRegistry());
Run Code Online (Sandbox Code Playgroud)
和
Schedule<FeedTask>().ToRunNow().AndEvery(15).Minutes();
Schedule<SitemapTask>().ToRunNow().AndEvery(6).Hours();
Run Code Online (Sandbox Code Playgroud)
SitemapTask
public class SitemapTask : ITask
{
private readonly ISitemapHelper _sitemapHelper;
public SitemapTask(ISitemapHelper sitemapHelper)
{
_sitemapHelper = sitemapHelper;
}
public void Execute()
{
_sitemapHelper.Process(false);
}
}
Run Code Online (Sandbox Code Playgroud)
FeedTask
public class FeedTask : ITask
{
private readonly IFeedHelper _feedHelper;
public FeedTask(IFeedHelper feedHelper)
{
_feedHelper = feedHelper;
}
public void Execute()
{
_feedHelper.Process(false);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Autofac,并且依赖项已注册为"InstancePerLifetimeScope".问题是FeedTask只在应用程序开始时运行一次,但在15分钟后不再运行.但是,如果我将初始化反转为
Schedule<SitemapTask>().ToRunNow().AndEvery(6).Hours();
Schedule<FeedTask>().ToRunNow().AndEvery(15).Minutes();
Run Code Online (Sandbox Code Playgroud)
它将每15分钟运行一次(我假设站点地图不会每6小时运行一次)
怎么修?
我想在我的odata服务中扩展所有导航属性...
public class Order
{
Product Product {get;set;}
}
public class Product
{
Category Category {get;set;}
}
public class Category
{
string Name {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
如何显示所有这些导航属性?这就是我所拥有的
/的OData /订单?$展开;产品
我怎么也显示类别?