почему первые два возвращают System.Object и как это можно исправить?
List<dynamic>
- это на самом деле List<object>
(можешь загнать в sharplab и убедиться в этом)public interface IClientViewModel {
public string EXa { get; set; }
}
public class ClientViewModelNewWrapper: IClientViewModel {
private readonly ClientViewModelNew _internal;
public ClientViewModelNewWrapper(ClientViewModelNew obj) => _internal = obj;
public string EXa { get => _internal.EXa; set => _internal.EXa = value;}
}
public class ClientViewModelOldWrapper: IClientViewModel {
private readonly ClientViewModelOld _internal;
public ClientViewModelNewWrapper(ClientViewModelOld obj) => _internal = obj;
public string EXa { get => _internal.EXa; set => _internal.EXa = value;}
}
private static void MapEndpoint(
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Text.Json.Serialization.Metadata;
var options = new JsonSerializerOptions
{
TypeInfoResolver = new DefaultJsonTypeInfoResolver
{
Modifiers = { AlphabeticalOrderModifier }
},
WriteIndented = true
};
var obj = new MyClassA { X = 42, B = new MyClassB { X = 69 } };
var result = JsonSerializer.Serialize(obj, options);
Console.WriteLine(result);
static void AlphabeticalOrderModifier(JsonTypeInfo jsonTypeInfo)
{
if (jsonTypeInfo.Kind != JsonTypeInfoKind.Object) return;
var properties = jsonTypeInfo.Type.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty).OrderBy(x => x.Name);
jsonTypeInfo.Properties.Clear();
foreach (var property in properties)
{
var propertyInfo = jsonTypeInfo.CreateJsonPropertyInfo(property.PropertyType, property.Name);
propertyInfo.Get = property.GetValue;
propertyInfo.Set = property.SetValue;
jsonTypeInfo.Properties.Add(propertyInfo);
}
}
class MyClassA
{
public int X { get; set; }
public MyClassB B { get; set; }
}
class MyClassB
{
public int X { get; set; }
}
{
"B": {
"X": 69
},
"X": 42
}
На втором месте наверное AvaloniaUI смущает что на нем каких то больших проектов.
Так как программа небольшая я склоняюсь все быстро сделать на Windows Forms, в 2022 году кто то стартует на нем новые проекты?
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
<ApplicationVisualStyles>true</ApplicationVisualStyles>
<ApplicationUseCompatibleTextRendering>false</ApplicationUseCompatibleTextRendering>
<ApplicationHighDpiMode>SystemAware</ApplicationHighDpiMode>
<ApplicationDefaultFont>Microsoft Sans Serif, 8.25pt</ApplicationDefaultFont>
</PropertyGroup>
</Project>
можно.
Есть вроде как способ с массивами, но в массив нельзя добавить ещё массив.
Если объект сделать, то его нельзя взять по id
List юзать, или что..
//нет бесконечного цикла, почему так?
Мне нужно найти определенное устройство в wifi сети и подключиться к его серверу.
public void SetStrategy(Action<SomeOne> action) {
_someOne = action;
}
public void SetStrategy(Action<SomeTwo> action) {
_someTwo = action;
}
switch(executor) {
case Action<SomeOne> one:
_someOne = one;
break;
case Action<SomeTwo> two:
_someTwo = b;
break;
default:
throw new NotSupportedException($"{typeof(T).FullName} is not supprted");
}