我们正在将 Service Fabric 服务迁移到 Kubernetes。其中大多数是“无状态”服务并且易于迁移。然而,我们有一项“有状态”服务,它大量使用 SF 的 Reliable Collections。
K8s 有 Statefulsets,但这确实无法与 SF 的可靠集合相媲美。
是否有 .NET 库或其他解决方案可以在 K8s 中实现类似于 SF 的 Reliable Collections 的功能?
我正在为OData端点使用OData属性路由.这是我的一个例子:
[ODataRoutePrefix("Profile")]
public class ProfileODataController : ODataController
{
[ODataRoute]
[EnableQuery]
public IHttpActionResult Get()
{
var repo = new Repositories.ProfileRepository();
return Ok(repo.GetProfiles());
}
[ODataRoute("({key})")]
[EnableQuery]
public IHttpActionResult Get([FromODataUri] string key)
{
var repo = new Repositories.ProfileRepository();
var result = repo.GetProfiles().SingleOrDefault(x => x.Id== key);
if (result == null) return NotFound();
return Ok(result);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的设置:
config.MapODataServiceRoute("odata", "odata", ModelGenerator.GetEdmModel());
Run Code Online (Sandbox Code Playgroud)
这是我的EdmModel代:
public static IEdmModel GenerateEdmModel()
{
var builder = new ODataConventionModelBuilder();
builder.EntitySet<Profile>("Profile").EntityType.HasKey(x => x.Id);
return builder.GetEdmModel();
}
Run Code Online (Sandbox Code Playgroud)
网址 /odata/Profile和/odata/Profile('someid')两者都有效,但是当我尝试访问$ metadata endpoint( …
在此示例代码中,我想配置一个Fixture对象以null在一半的时间内返回字符串。
void Test()
{
var fixture = new Fixture();
fixture.Customize<string>(x => x.FromFactory(CreateString));
var str1 = fixture.Create<string>();
//error occurs here when string should come back null
var str2 = fixture.Create<string>();
}
bool _createString = false;
string CreateString()
{
_createString = !_createString;
return _createString ? "test" : null;
}
Run Code Online (Sandbox Code Playgroud)
问题是,每当我的工厂返回时null,我都会得到InvalidOperationException:
装饰的 ISpecimenBuilder 返回的样本与 System.String 不兼容。
对于我null在工厂内返回的任何类型,都会发生这种情况。有没有办法配置AutoFixture返回null请求的对象?
我希望能够扩展IdentityRole的默认实现以包括描述等字段.为IdentityUser执行此操作非常简单,因为IdentityDbContext采用IdentityUser类型的通用参数.但是,IdentityDbContext不允许您为IdentityRole执行此操作.我怎么能做到这一点?
我知道我可以创建一个基本的DbContext,并实现我自己的IUserStore,这样我就可以使用自己的角色类,但我真的不想这样做.
有什么想法吗?
所以我有我的写入文件功能,它将创建该文件,如果它不存在,它的工作但问题是你第一次运行代码时文件不存在它创建它然后崩溃程序
//writing file to Error.txt
string path = @err;
if (!File.Exists(path)) // if does not exist make it
{
File.Create(path);
TextWriter tw = new StreamWriter(path); //crashes here after create
tw.WriteLine(i);
tw.Close();
}
Run Code Online (Sandbox Code Playgroud)
例外情况是:
mscorlib.dll中发生了未处理的"System.IO.IOException"类型异常
附加信息:进程无法访问文件
'C:\ Users\Desktop\TestStuff\error.txt',因为它正由另一个进程使用.
我有以下字符串
{
data: [
{"Href":"1.jpg","Id":1,"Height":55,"Width":55,"Index":0},
{"Href":"2.jpg","Id":2,"Height":55,"Width":55,"Index":1},
{"Href":"3.jpg","Id":3,"Height":55,"Width":55,"Index":2},
{"Href":"4.jpg","Id":4,"Height":55,"Width":55,"Index":3}
]
}
Run Code Online (Sandbox Code Playgroud)
转换回json
var data = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(parsedString);
Run Code Online (Sandbox Code Playgroud)
我的问题是:
我怎样才能访问每个JSON属性,例如Something.Href提取1.jpg,2.jpg或仅Id属性?
c# ×4
.net ×1
.net-core ×1
asp.net-mvc ×1
autofixture ×1
file-io ×1
json ×1
kubernetes ×1
odata ×1
unit-testing ×1