我的 ASP.NET Core 应用程序使用由一组类(“Helper”、“Client”、“UserSetting”、“ServerSetting”)组成的软件客户端,从依赖项注入中检索其正确的配置/实例。单个类可以在应用程序中配置为单例并使用。但是我怎样才能拥有这组类的多个实例呢?现在“Client”和“Helper”的实例A如何收到A的相应设置,而实例B收到其不同的相应值?
我所拥有的:单个客户端有一个助手,并在 appsettiongs.json 中进行设置。助手和客户端都需要设置。一切都可以沟通
目标案例:“Client”、“Helper”、“UserOptions”、“ServerOptions”类的多个实例。如图所示,我需要此包类的多个实例来连接到多个服务器并与选定的服务器进行通信。每个客户端必须针对另一个服务器/用户数据组合进行配置。
当前单个客户端的初始化:
class Startup {
IConfiguration configuration {get;}
public Startup(){//init configuration from appsettings.json}
public void ConfigureServices(IServiceCollection services){
...
services.Configure<UserSettings>(Configuration.GetSection("userData");
service.Configure<ServerSettings>(Configuration.GetSection("serverSettings");
service.AddSingleton<IHelper, MyHelper>();
service.AddSingleton<IClient, MyClient>();
}
}
public class MyClient:IClient{
public void MyClient(ILogger<MyClient> log, IHelper helper){..}
}
public class MyHelper:IHelper{
public void MyHelper(ILogger<MyHelper> log, IOptions<UserSettings> userSettings, IOptions<ServerSettings> serverSettings){..}
}
class MyWebController{
public IClient Client;
public MyWebController(IClient client){ this.Client = client;}
public ActionResult DoSomeServerStuff(string data){
Client.Communicate();
}
}
Run Code Online (Sandbox Code Playgroud)
首选用法的想法:
class Startup {
IConfiguration configuration {get;} …Run Code Online (Sandbox Code Playgroud) 以下是使用 ListSerializer 在 django Rest 框架中一次创建和更新多个记录的方法。这种方式非常排序并且响应速度快。
当您想要创建对象时,请传递id: null因为id是必填字段,当您想要更新记录时,请传递特定 id。
答案如下:
模型.py
class BookDetail(models.Model):
author = models.ForeignKey('bookapp.Author', null=True, on_delete=models.CASCADE)
title = models.CharField(max_length=255, null=True, blank=True)
price = models.CharField(max_length=100, null=True, blank=True)
discount = models.FloatField(default=0)
tax_percentage = models.IntegerField(default=0)
total_price = models.FloatField(default=0)
created_at = models.DateTimeField(auto_now_add=True, editable=False)
modified_at = models.DateTimeField(auto_now=True)
Run Code Online (Sandbox Code Playgroud)
序列化器.py
class BookDetailsListSerializer(serializers.ListSerializer):
def update(self, instance, validated_data):
# Perform creations and updates.
ret = []
for data in validated_data:
if "id" in data and data['id'] not in ['', None]:
BookDetail.objects.filter(id=data['id']).update(**data)
ret.append(data)
else: …Run Code Online (Sandbox Code Playgroud) python django multiple-instances insert-update django-rest-framework
我正在尝试用各种动物在蟒蛇中写下一个生命模拟.我不可能命名我要使用的每个类的实例,因为我无法知道将会有多少.
所以,我的问题:
如何自动为对象命名?
我想创造一个"牧群"类,可以同时活着的那种动物......
class Player
{
private Location location;
public Location getLocation()
{
return location;
}
public void setLocation(Location location)
{
this.location = location;
}
}
Run Code Online (Sandbox Code Playgroud)
...
class Location
{
int x,y,z;
public Location(int x, int y, int z)
{
this.x = x;
this.y = y;
this.z = z;
}
public Location(Location location)
{
this.x = location.x;
this.y = location.y;
this.z = location.z;
}
public void updateLocation(Location location) //the fix..
{
this.x = location.x;
this.y = location.y;
this.z = location.z;
}
}
Run Code Online (Sandbox Code Playgroud)
说..你做 …
c# multiple-instances visual-studio default-copy-constructor
我想知道Java如何处理同一个案例的多个相同实例.从概念上讲,我认为以下内容是有道理的:
switch (someIntegerValue)
{
case 1:
case 2:
DoSomethingForBothCases();
break;
case 3:
DoSomethingUnrelated();
break;
case 1:
DoSomethingForCase1ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
case 2:
DoSomethingForCase2ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
}
Run Code Online (Sandbox Code Playgroud)
本质上,我想为一个案例1或2(使用直通)执行一大块代码,但是稍后,只有一个代码块仅针对案例2执行.
相反,以下是必要的吗?
switch (someIntegerValue)
{
case 1:
DoSomethingForBothCases();
DoSomethingForCase1ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
case 2:
DoSomethingForBothCases();
DoSomethingForCase2ThatReliesUponExecutionOfTheEarlierFunctionCall();
break;
case 3:
DoSomethingUnrelated();
break;
}
Run Code Online (Sandbox Code Playgroud)
我的实际代码更复杂,但会使用相同的原则(例如" 案例1:nope;好吧...... 案例2:是的!执行此代码!; 案例3:nope; 案例1再次?:仍然没有! ; 案例2再次?:是的!执行此代码; 没有更多案例:全部完成!")
我有一个来自多家公司(一些来自同一家公司,一些不是)的注册人的阵列,我需要计算来自同一家公司的注册人数.所以我需要一个数字告诉我有多少人(在第一个之后)来自独特的公司注册.
说我有一个数组:
var company_names = ['acme', 'acme', 'bobo', 'comanche', 'acme', 'comanche'];
Run Code Online (Sandbox Code Playgroud)
和变量:
var companies_eligible_for_discount = 0;
Run Code Online (Sandbox Code Playgroud)
我如何计算3个折扣?(2表示"acme",1表示"comanche")
我试图阻止我的程序在任何给定时间运行多个实例。我读过有关使用互斥体和 Windows 事件的内容,但是这两个线程都有好几年的历史了,我很好奇 .net4 是否有一种更简单、更优雅的方法来处理这个问题?我想我已经读过有关表单的设置,该设置允许您拒绝属性的多个实例?有人可以阐明防止程序出现多个实例的最安全和/或最简单的方法是什么吗?
我有功能,我需要使用以下模型实现嵌套的django表单
class Publisher(models.Model):
name = models.CharField(max_length=256)
address1 = models.CharField(max_length=256)
address2 = models.CharField(max_length=256)
city = models.CharField(max_length=256)
class Author(models.Model):
publisher = models.ForeignKey(Publisher)
name = models.CharField(max_length=256)
address = models.CharField(max_length=256)
class Book(models.Model):
author = models.ForeignKey(Author)
name = models.CharField(max_length=256)
price = models.FloatField()
Run Code Online (Sandbox Code Playgroud)
forms.py
class PublisherForm(ModelForm):
class Meta:
model = Publisher
def __init__(self, *args, **kwargs):
super(PublisherForm, self).__init__(*args, **kwargs)
self.fields['name'].widget.attrs = {'id':'inputIcon', 'class':'input-block', 'placeholder':'Publisher Name', 'autofocus':'autofocus'}
self.fields['address'].widget.attrs = {'id':'inputIcon', 'class':'input-block', 'placeholder':'Publisher Address '}
class AuthorForm(ModelForm):
class Meta:
model = Author
exclude = ('publisher',)
def __init__(self, *args, **kwargs): …Run Code Online (Sandbox Code Playgroud) 当我尝试在两个不同的Visual Studio实例中打开两个项目并同时在调试模式下本地运行它们时(例如,Web应用程序和它使用的后端WebService)我收到错误"无法启动调试在Web服务器上.已经附加了一个调试器"
办公室里没有其他任何人能够做到这一点,除了一个人,他无法弄清楚为什么它只对他有用.我的计算机IIS中的虚拟目录似乎与他的设置方式相同(我不知道设置).
我也可以在我以前的工作中同时从VS的两个实例进行调试,所以这里的设置必须有所不同.
iis multiple-instances visual-studio visual-studio-debugging debug-mode
我只需要安装我的应用程序的多个实例,将它们保存在不同的文件夹中,桌面上没有快捷方式。换句话说,当应用程序已经安装在文件夹中时,如果我再次双击 .msi 文件,安装程序不应该问我是否要修复或删除我的应用程序,而只是应该允许安装它在一个新文件夹中。我怎么解决这个问题?
c# ×3
django ×2
javascript ×2
python ×2
.net ×1
arrays ×1
asp.net-core ×1
class ×1
count ×1
debug-mode ×1
django-forms ×1
duplicates ×1
iis ×1
java ×1
mutex ×1
object ×1
wix ×1