Tag: .net core

Windows 10上的.net核心安装iot(Raspberry PI3 – ARM)

我在不同的操作系统上测试.net内核,我想知道是否可以在我的Raspberry PI3上安装Windows 10上的dotnet / cli(.net Core)。 我的目标是进行简单的GPIO测试。 到目前为止我做了什么: 我进入了.NET核心站点,但没有找到任何有关Windows 10 iot目标的信息。 我找到了一篇很棒的博客文章,标题为如何在Pi2 – Win10物联网核心上运行.NET核心应用程序? 但是它使用似乎已经过时的DNVM ,并且我没有在应该替换它的站点中读取有关Windows 10 iot目标的任何信息。 我错过了什么吗? 这样做还为时过早? PS:我在GitHub中解决了dotnet / cli问题。 2017-04-19 :这个过程正在进行中,看看Raspberry Pi上的.NET Core

如何将相同的列添加到EF Core中的所有实体?

想象一下,我想在我的所有实体中添加一个IsDeleted列或一些审核列。 我可以创建一个基类,我的所有实体都将从该基类inheritance,这将解决我的问题,但是我无法指定创建列的顺序,因此我将在实体的字段之前得到所有审计字段,我不想要。 我希望他们在桌子的尽头。 在标准版本的entity framework中,我们可以使用指定列顺序的注释来完成此操作。 但是,目前EF核心并不存在这样的事情。 我可以使用OnModelCreating()方法上的流畅api来做,问题是我只知道如何为我的每个实体单独执行它,这意味着我必须为我拥有的每个实体编写相同的代码。 对于我的所有实体,我有什么办法可以做到这一点吗? 某种for循环迭代遍历dbcontext上DbSets中注册的所有实体?

如何添加通用dependency injection

使用只读api服务并利用generics将操作打包到基于约定的过程中。 存储库界面: public interface IRepository where TEntityType:class { Task<EntityMetadata> GetMetaAsync(); } 存储库实现: public class Repository : IRepository where TEntityType:class { public Repository(string connectionString) { // initialization } public async Tas<EntityMetadata> GetMetaAsync() { // implementation } } 在Startup.cs -> ConfigureServices : services.AddSingleton<IRepository> ( p=> new Repository(connectionString)); services.AddSingleton<IRepository> ( p=> new Repository(connectionString)); // and so on 控制器: […]

如何在.NET Core中从流加载程序集

我在.NET Core控制台应用程序上遇到Roslyn。 我试图创建一个程序集并将其编译成一个内存流。 但加载它似乎缺少一个API( 通常适用于常规的.NET Framework ) var compilation = CSharpCompilation.Create(“MyCompilation”, syntaxTrees: new[] { pocoTree }, references: new[] { mscorlib, currentAssembly }); var ms = new MemoryStream(); var emitResult = compilation.Emit(ms); var ourAssembly = Assembly.Load(ms.ToArray()); // Fails to compile here 我收到此错误: 无法从’byte []’转换为’System.Reflection.AssemblyName’ .NET Core中从steam加载的替代方法是什么? (除了物理保存组件并加载它)

.net核心中的CPU使用率(至少在Windows上)

所以PerformanceCounter在dotnet核心中消失了。 我理解这是因为它不兼容Linux。 这里的评论:( .NET Core性能计数器的故事是什么? )似乎暗示如果我只愿意在Windows上运行它,我可以“利用Windows特有的function”,但我不知道我如何将其整合到dotnet核心中。 我愿意做这个解决方法的原因是保留dotnet核心代码库,这样一旦有针对PerformanceCounter的跨平台解决方案,我就不必迁移。 总结一下我的问题:如何在Windows上运行时运行dotnet核心的CPU使用率? 我发现的其他相关post: 这个解决方案似乎表明Process.GetCurrentProcess()就足够了,我不太明白( PerformanceCounter提供了该机器的完整CPU使用率)。 循环遍历所有进程(正如这个其他post似乎暗示的那样 ?)是不可行的(它为某些进程抛出exception)并且它看起来很慢也是我的用例的问题。

为什么Scoped服务解析为同一请求的两个不同实例?

我有一个包含List的简单服务。 在Startup.cs中,我使用的是services.addScoped()方法。 我在两个不同的地方(控制器和中间件)注入服务实例,对于单个请求,我希望获得相同的实例。 但是,这似乎并没有发生。 即使我在Controller Action中向List添加Foo,中间件中的Foo列表也始终为空。 为什么是这样? 我已经尝试使用AddSingleton()将服务注册更改为单例,并且它按预期工作。 但是,这必须限制在当前请求范围内。 非常感谢任何帮助或想法! FooService.cs public class FooService { public List Foos = new List(); } Startup.cs … public void ConfigureServices(IServiceCollection services) { … services.AddScoped(); } [以下是我注入服务的两个地方,导致两个不同的实例] MyController.cs public class MyController : Controller { public MyController(FooService fooService) { this.fooService = fooService; } [HttpPost] public void TestAddFoo() { //add foo […]

在部署.net核心应用程序时,HTTP错误500.19,错误代码0x8007000d visual studio 2017

我使用visual studio 2017创建了默认的.net核心应用程序,并且我正在尝试发布它。当我使用Visual Studio 2017,IIS Express启动时,应用程序运行正常。 但是当我发布应用程序时,我收到以下错误: 我使用somee.com免费托管。 谁能帮助我?

使用Novell.Directory.Ldap.NETStandard库进行C#netcore ldap身份validation

这是我第一次使用LDAP和Active Directory。 我必须使用.NetCore创建一个必须使用ActiveDirectory(WindowsServer 2008 r2)进行身份validation的web api,我正在关注Novell.Directory.Ldap.NETStandard中的示例,但我无法理解我必须设置参数的方式。 这是我在ActiveDirectory Server中创建的用户: 在Novell的样本中 if (args.Length != 5) { System.Console.Out.WriteLine(“Usage: mono VerifyPassword ” + ” \n” + ” “); System.Console.Out.WriteLine(“Example: mono VerifyPassword Acme.com ” + “\”cn=Admin,o=Acme\” secret\n” + ” \”cn=JSmith,ou=Sales,o=Acme\” testPassword”); System.Environment.Exit(0); } int ldapPort = LdapConnection.DEFAULT_PORT; int ldapVersion = LdapConnection.Ldap_V3; System.String ldapHost = args[0]; System.String loginDN = args[1]; System.String […]

.NET Core 2.0模块化dependency injection

我正在尝试构建一个包含Entity Framework及其数据库提供程序等核心和扩展包的库。 我想要做的是当我使用dependency injection注册该库时,我想将特定实现作为参数。 想想EF。 为了在EF上使用sql提供程序,我们需要将其作为选项参数传递给SQL提供程序,如下所示。 services.AddDbContext(options => { options.UseSqlServer(Configuration[“ConnectionString”]); }); 我想建立类似的结构。 让我们说我的框架将提供电影制片人。 它将包含用于框架相关类的producer.core包和两个名为Producer.Extensions.Hollywood和Producer.Extensions.Bollywood扩展包。 如果我想使用Hollywood提供商,我需要安装核心包和Hollywood扩展包。 注册时应该看起来像 services.AddFilmProducer(options => { options.UseHollywoodProducer(); }); 我找不到一个能给我指路的关键词。 我试图阅读entity framework的源代码,但对我的情况来说太复杂了。 有没有人可以指点我的方向? 提前致谢。

SemaphoreSlim保护连接池免于耗尽

我在事件驱动架构中有一个微服务(Web API),它接收来自RabbitMQ的消息,它应该使用ADO.NET将它们保存到PostgreSQL数据库中。 不幸的是,我的连接池(目前设置为50)很快耗尽,给我这个错误信息: The connection pool has been exhausted, either raise MaxPoolSize 我的RabbitMQ Consumer设置如下(Singleton): public class Listener : RabbitMqConnection { public AsyncEventingBasicConsumer _asyncConsumer; private static readonly SemaphoreSlim AsyncLock = new SemaphoreSlim(1, 1); public Listener() { _asyncConsumer = new AsyncEventingBasicConsumer(_channel); _asyncConsumer.Received += ConsumerReceived; } public async Task ConsumerReceived(object sender, BasicDeliverEventArgs message) { await AsyncLock.WaitAsync(); try { […]