我一直试图从MVC应用程序访问特定的Google云端硬盘帐户.我只需要MVC网络应用程序访问我的谷歌驱动器扫描几个文件,并根据谷歌驱动器的内容更改数据库.问题是当在IIS中运行时,无法对驱动器进行身份验证,因为GoogleWebAuthorizationBroker尝试打开浏览器,如果它是一个Windows应用程序,但似乎无法通过IIS执行此操作,即使它确实是服务器端.
理想情况下,我根本不需要对这个应用程序进行身份验证,但是如果它已经完成了,那么我如何让它在IIS中运行?
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "MY_ID",
ClientSecret = "My_Secret"
},
new[] { DriveService.Scope.Drive },
"user",
CancellationToken.None, dataStore: new FileDataStore(Server.MapPath("~/app_data/googledata"))).Result;
Run Code Online (Sandbox Code Playgroud) c# asp.net-mvc google-drive-api google-oauth google-api-dotnet-client
我一直在使用MVC中的Bundles将所有脚本和CSS打包在一起,这很棒但是......有没有办法在Bundle的共享项目库中包含资源中的脚本或css,或者有人知道类似于捆绑可以做到这一点?
有没有办法防止在C#中创建具有静态实例的类.我不认为有,但它可能有用.例如,只是一些属性来防止它.
这样的事情
[NoStaticInstances]
public class MyClass {
}
Run Code Online (Sandbox Code Playgroud)
以便
public static MyClass _myClass;
Run Code Online (Sandbox Code Playgroud)
会导致错误吗?
如果有人提出这个问题但我无法在任何地方找到答案.
我的问题是在使用MOQ模拟返回方法时,该方法返回动态类型.我正在使用第三部分库,它使用动态时间.MOQ似乎将动态类型转换为对象.
Mock<IFacebookHelper> mockFbHelp = new Mock<IFacebookHelper>();
mockFbHelp.Setup(x => x.Get("me")).Returns(new { email = "test@test.com", id="9999" });
Run Code Online (Sandbox Code Playgroud)
模拟帮助器中的方法.
public dynamic Get(string p)
{
var client = new FacebookClient(AccessToken);
return client.Get("me");
}
Run Code Online (Sandbox Code Playgroud)
来自控制器的代码使用模拟结果.
_facebookHelper.AccessToken = accessToken;
dynamic result = _facebookHelper.Get("me");
int facebookId = int.Parse(result.id); //This errors as id doesn't exist.
Run Code Online (Sandbox Code Playgroud)
基本上,MOQ返回了一个动态类型的对象,需要将其作为某种东西进行渲染.
有谁知道如何解决这个问题?我假设它可能是因为MOQ没有在.NET 4中编码因此不支持动态类型?
编辑
实际上我不认为这是一个MOQ问题,因为我创建了自己的模拟类,但仍然遇到了同样的问题.我是动态类型的新手,但不知道发生了什么.
编辑2 - 部分回答..问题毕竟与MOQ无关
实际上问题似乎是由于在不同的程序集中创建了动态类型.虽然我使用JObject类型解决了我最初的问题,但我还是想弄明白这一点.
namespace MyLib.Tools
{
public interface IDynTest
{
dynamic GetData();
}
}
Run Code Online (Sandbox Code Playgroud)
namespace MyLib.Tools
{
public class DynTest : Effect.Tools.IDynTest
{
public dynamic GetData() …Run Code Online (Sandbox Code Playgroud) c# ×3
asp.net-mvc ×2
bundle ×1
class ×1
google-oauth ×1
mocking ×1
moq ×1
resources ×1
return ×1
static ×1