我知道这些扩展用于生成基于Odata服务的客户端代码.
任何人都可以解释利弊吗?
最近的 dotnet 版本(dotnet 6 和 7)具有提前 (AOT) 编译功能。根据官方文档,有不同的方法可以实现这一目标。
<PropertyGroup>
<PublishAot>true</PublishAot>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
<PropertyGroup>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
<PropertyGroup>
<RunAOTCompilation>true</RunAOTCompilation>
</PropertyGroup
Run Code Online (Sandbox Code Playgroud)
仅通过阅读文档很难理解这个概念。PublishReadyToRun 与 PublishAot 之间有什么区别?何时使用其中一种而不是另一种?以及如何为类库、blazor wasm 和 asp.net core 项目启用 AoT 编译?
我需要创建一个泛型方法,它将获取两个对象(相同类型),并返回具有不同值的属性列表.由于我的要求有点不同,我不认为这是重复的.
public class Person
{
public string Name {get;set;}
public string Age {get;set;}
}
Person p1 = new Person{FirstName = "David", Age = 33}
Person p2 = new Person{FirstName = "David", Age = 44}
var changedProperties = GetChangedProperties(p1,p2);
Run Code Online (Sandbox Code Playgroud)
该代码解释了该要求:
public List<string> GetChangedProperties(object A, object B)
{
List<string> changedProperties = new List<string>();
//Compare for changed values in properties
if(A.Age != B.Age)
{
//changedProperties.Add("Age");
}
//Compare other properties
..
..
return changedProperties;
}
Run Code Online (Sandbox Code Playgroud)
应考虑以下事项:
那里有没有开箱即用的图书馆?
我可以使用AutoMapper …
我正在开发一个客户端/服务器数据驱动的应用程序,使用caliburn.micro作为前端,使用Asp.net WebApi 2作为后端.
public class Person
{
public int Id {get;set;}
public string FirstName{get;set;}
...
}
Run Code Online (Sandbox Code Playgroud)
该应用程序包含一个名为"Person"的类."Person"对象被序列化(JSON)并使用简单的REST协议从客户端到服务器来回移动.解决方案正常运行没有任何问题.
问题:
我为"Person"设置了一个父类"PropertyChangedBase",以实现NotifyOfPropertyChanged().
public class Person : PropertyChangedBase
{
public int Id {get;set;}
private string _firstName;
public string FirstName
{
get { return _firstName; }
set
{
_firstName = value;
NotifyOfPropertyChange(() => FirstName);
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
但是这次"Person"类的属性在接收端有NULL值.
我猜序列化/反序列化存在问题.这仅在实现PropertyChangedBase时发生.
任何人都可以帮我解决这个问题吗?
DateTimeOffset
由于Odata不支持,我需要将属性绑定到WPF DatePicker DateTime
。我知道如何绑定DateTime
属性。
我尝试DateTimeOffset
将DatePicker的绑定DateTime
属性与绑定属性相同。
但是价值根本没有改变。始终具有默认值。
我怎么解决这个问题?
我正在使用以下代码从Asp.net Web Api 2.2服务中使用JWT访问令牌.我已按照本文在Web Api服务中设置授权服务器.我在客户端使用RestSharp.
客户代码:
var client = new RestClient(http://localhost:58030);
client.Timeout = 30000;
var request = new RestRequest(@"/Oauth/Token", Method.POST);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddHeader("grant_type", "password");
request.AddHeader("username", "admin@example.com");
request.AddHeader("password", "Admin@456");
IRestResponse response = client.Execute(request);
result = response.Content;
Run Code Online (Sandbox Code Playgroud)
结果我得到以下错误:
{
"error_description":"grant type not supported",
"error":"unsupported_grant_type"
}
Run Code Online (Sandbox Code Playgroud)
我正在构建一个包含 3 个项目的 Asp.net MVC5 + EF6 解决方案。我在我的项目中启用了自动迁移。下图显示了我的项目结构。
BaseContext
主要项目。context
类,这些类派生自
BaseContext
.楷模:
Project2 中的模型
public class Product
{
[Key]
public int ProductId {get;set;}
...
}
Run Code Online (Sandbox Code Playgroud)
Project3 中的模型
public class Order
{
[Key]
public int OrderId {get;set;}
[ForeignKey("Product")]
public int ProductId {get;set}
public virtual Product Product;
...
}
Run Code Online (Sandbox Code Playgroud)
来自Project3实体 ( Order.ProductId
) 的属性引用来自Project2实体 的属性(Product.ProductId)
作为外键引用。
当我update-database
在项目 1 和 2 中运行命令时,一切顺利。但是当update-database
在项目 3 中运行命令时,它给出了一个错误:
数据库中已经有一个名为“Product”的对象。
现在我正在使用update-database …
在 Microsoft oData v4 代理客户端中,有一个选项可以将身份验证令牌添加到每个请求中。可以通过以下方式实现:
var container = new Default.Container(new Uri(http://localhost:9000/));
//Registering the handle to the BuildingRequest event.
container.BuildingRequest += (sender, e) => OnBuildingRequest(sender, e, accessToken);
//Every time a OData request is build it adds an Authorization Header with the acesstoken
private static void OnBuildingRequest(object sender, BuildingRequestEventArgs e, TokenResponse token)
{
e.Headers.Add("Authorization", "Bearer " + token.AccessToken);
}
Run Code Online (Sandbox Code Playgroud)
如何使用简单的 odata 客户端做同样的事情?
我正在Asp.Net Web API应用程序中实现存储库模式。
public abstract class Repository<T> : IRepository<T> where T : EntityBase
{
private DbContext context_;
public Repository(DbContext context)
{
context_ = context;
}
public virtual async Task<T> GetAsync(int id)
{
return await context_.Set<T>().FindAsync(id);
}
...
}
Run Code Online (Sandbox Code Playgroud)
问题:
在这里,我有一个方法GetAsync(int id)
,该方法适用于具有单个键和int
类型的实体。
但是,有些实体具有键string
类型,有些实体具有复合键。
题:
我该如何克服这个问题?
是否有可能以通用方式解决该问题?
c# generics entity-framework repository-pattern asp.net-web-api2
我有一个Asp.Net Owin自托管WebApi应用程序.该应用程序可以作为生产环境中的Windows服务安装.
目前我正在运行并通过url http:// localhost:8000成功访问该服务.
现在我想将服务映射到域以从公共网络访问它.我有一个注册域名并可以控制它.例如:www.myservice.com
如何将域指向自助托管应用程序的WebApi服务?
我在 WPF 应用程序中使用 Caliburn Micro 框架,我需要将集合绑定到 DatGrid 的 ItemsSource。请考虑以下代码:
班级
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public ObservableCollection<Subject> Subjects;
}
public class Subject
{
public string Title{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
查看模型
public class PersonViewModel : Screen
{
private Person _person;
public Person Person
{
get { return _person; }
set
{
_person = value;
NotifyOfPropertyChange(() => Person);
NotifyOfPropertyChange(() => CanSave);
}
}
....
}
Run Code Online (Sandbox Code Playgroud)
看法
<UserControl x:Class="CalCompose.ViewModels.PersonView" …
Run Code Online (Sandbox Code Playgroud) 考虑遵循lambda表达式:
IQueryable<Product> query = query.Where(x => x.ProductName.Contains("P100"));
Run Code Online (Sandbox Code Playgroud)
我需要转换上面这样的代码:
IQueryable<Product> query = query.Where(x => x.GetPropertyValue("ProductName").Contains("P100"));
Run Code Online (Sandbox Code Playgroud)
在这里,我添加了一个虚拟方法GetPropertyValue("ProductName")
来解释需求.在上面的代码中,属性应该在运行时解析.换句话说,我需要从sting值Eg访问该属性"ProductName"
我怎样才能做到这一点?
c# ×12
wpf ×3
.net ×1
access-token ×1
aot ×1
asp.net ×1
asp.net-mvc ×1
auth-token ×1
automapper ×1
binding ×1
compare ×1
comparison ×1
datagrid ×1
datepicker ×1
entity-framework-migrations ×1
generics ×1
iqueryable ×1
json ×1
jwt ×1
lambda ×1
linq ×1
mvvm ×1
oauth-2.0 ×1
object ×1
odata ×1
odata-v4 ×1
owin ×1
restsharp ×1
self-hosting ×1