我想在 ASP.NET Core 6 中创建一个简单的文件上传端点,并认为它会像此处描述的那样简单https://dotnetthoughts.net/handling-file-uploads-in-openapi-with-aspnet-core/。
当我定义如下端点时:
app.MapPost("/upload", (IFormFile file) =>
{
//Do something with the file
return Results.Ok();
}).Accepts<IFormFile>("multipart/form-data").Produces(200);
Run Code Online (Sandbox Code Playgroud)
当我呼叫端点时,我收到了 415 回复。我收到的消息是这样的:
期望支持 JSON 媒体类型,但得到“multipart/form-data; ...
当我说端点应该接受时,不知道为什么它期望支持的 json multipart/form-data。
关于在这里做什么有什么想法或想法吗?
我有一些IDataReader类型的对象扩展我需要的扩展方法.问题是,当我尝试模拟IDataReader时,扩展方法不包含在模拟中,所以当行Expect.Call(reader.ExtensionMethod()).Return(someValue)到达时ExtensionMethod执行的不是我想要的!我希望该调用是记录,当扩展方法从其他地方调用时,我希望它返回someValue.
有谁知道怎么解决这个问题?
我刚刚将autofac安装到我的一个项目中,称之为项目A,在我使用nuget的解决方案中.出于某种原因,我的所有web.config文件,我在解决方案中有多个Web应用程序和api,使用像这样的程序集重定向更新:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
这意味着程序集重定向是什么意思?解决方案如何知道所有这些web.config文件需要更新?是因为我的Web应用程序引用了项目A吗?
我想为动态对象/ expando对象运行时的属性添加属性,是否可能?
我想做的是:
dynamic myExpando = new ExpandoObject();
myExpando.SomeProp = "string";
myExpando.AddAttribute("SomeProp", new MyAttribute());
Run Code Online (Sandbox Code Playgroud)
是否有可能以这种或那种方式做到这一点?
我想在单声道的F#中使用类型提供者,但我无法在xamarin工作室中使用它.
我看到错误是命名空间TypeProviders没有定义,但我在monodevelop中找到它?
我所做的是创建了F#的教程项目,并注释掉了OData示例.在我评论出我添加的样本之后System.Data.Services.Client,我找不到了Microsoft.FSharp.Data.TypeProviders.
当我使用az像这样的cli 工具创建服务主体时
az ad sp create-for-rbac --name <name>
Run Code Online (Sandbox Code Playgroud)
我打印了所有信息
{
"appId": "...",
"displayName": "...",
"name": "...",
"password": "...",
"tenant": "..."
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但我如何在以后检索该信息?使用
az ad sp list --display-name <name>
Run Code Online (Sandbox Code Playgroud)
确实给了我几乎我想要的东西,但我错过了password. 如何在不重置密码的情况下找回密码?
我有这个接口,在我想模拟的一些函数中返回void,并想知道这样做的正确方法是什么.截至目前,我有以下内容:
var mocks = new MockRepository();
var mockedInterface = mocks.CreateMock<IMyInterface>();
Expect.Call(mockedInterface.FunctionThatReturn(param1, param2)).Return(Something);
mockedInterface.FunctionReturningVoid(param3, param4);
mocks.ReplayAll();
// Some assert and other stuff
mocks.VerifyAll();
Run Code Online (Sandbox Code Playgroud)
这是正确的做法吗?我觉得它看起来很奇怪,因为你没有以同样的方式处理这两个函数.我想写的是:
var mocks = new MockRepository();
var mockedInterface = mocks.CreateMock<IMyInterface>();
Expect.Call(mockedInterface.FunctionThatReturn(param1, param2)).Return(Something);
Expect.Call(mockedInterface.FunctionReturningVoid(param3, param4)); // This doesn't work.
mocks.ReplayAll();
// Some assert and other stuff
mocks.VerifyAll();
Run Code Online (Sandbox Code Playgroud)
但这不适用于第4行.我发现一些博客说你可以使用lambda(或委托)之类的
Expect.Call(() => mockedInterface.FunctionReturningVoid(param3, param4)); // This doesn't work.
Run Code Online (Sandbox Code Playgroud)
但这对我来说似乎不起作用.拥有Expect.Call它可以轻松识别模拟功能,这就是我想要的原因.我得到的编译错误是:"无法将lambda表达式转换为类型'对象',因为它不是委托类型".
那怎么办呢?
更新:添加了编译错误信息.
我想在PowerShell中解析JSON但我不能使用PowerShell中提供的新v3函数.我的第一个想法是加载JSON.Net程序集并使用它来解析JSON字符串,但它不能像我期望的那样工作.
我有这个JSON:
$json = "{""Name"": ""Apple"",
""Price"": 3.99,
""Sizes"": [
""Small"",
""Medium"",
""Large""]}"
Run Code Online (Sandbox Code Playgroud)
我用这段代码加载JSON.NET程序集:
[Reflection.Assembly]::LoadFile("$currentPath\Newtonsoft.Json.dll”)
Run Code Online (Sandbox Code Playgroud)
并尝试解析它
$result = [Newtonsoft.Json.JsonConvert]::DeserializeObject($json)
Run Code Online (Sandbox Code Playgroud)
现在我希望那$result["Name"]是,Apple但我什么都没有.有任何想法吗?
代码'$ result.ContainsKey("Name")returnsTrue but$ result.GetValue("Name")returnsnull`.
如何Application_Error在ASP.NET WebAPI应用程序中获取触发器?我现在遇到的错误是当我们通过NInject解析控制器并且失败时它将无法进入Application_Error,我们无法记录错误,因为我们正在进行全局登录Application_Error.
我们还有一个用于处理错误的全局过滤器,但只有在找到控制器时才触发,但由于我们失败了,我们实例化控制器,我们不会通过任何过滤器.
那么我如何捕获Exception为什么尝试创建处理响应的控制器呢?
c# ×3
.net ×2
asp.net ×2
rhino-mocks ×2
.net-6.0 ×1
appharbor ×1
asp.net-core ×1
autofac ×1
azure ×1
f# ×1
iis ×1
iis-7 ×1
json ×1
json.net ×1
minimal-apis ×1
mocking ×1
monodevelop ×1
mstest ×1
nuget ×1
powershell ×1
wcf-web-api ×1
xamarin ×1