我有以下课程:
public class Entity<T> where T : Entity<T> {
public Factory<T> Factory { get; private set; }
public Entity(Factory<T> factory) {
Factory = factory;
}
}
public class Factory<T> { }
public class MyEntity : Entity<MyEntity> {
public MyEntity(Factory<MyEntity> factory) : base(factory) { }
}
Run Code Online (Sandbox Code Playgroud)
我试图用指定的构造函数动态创建类MyEntity.到目前为止,我有以下代码:
class Program {
static ModuleBuilder _moduleBuilder;
public static ModuleBuilder ModuleBuilder {
get {
if (_moduleBuilder == null) {
AssemblyBuilder asmBuilder = System.Threading.Thread.GetDomain().DefineDynamicAssembly(new AssemblyName("Dynamic"), AssemblyBuilderAccess.Run);
_moduleBuilder = asmBuilder.DefineDynamicModule("MainModule");
}
return _moduleBuilder;
}
}
static void …
Run Code Online (Sandbox Code Playgroud) 该类允许从集合向其成员传播数据上下文.但它仅适用于SilverLight.
更多信息DepedencyObjectCollection
可以在这篇文章中找到.
如果不存在等价物,那么创建一个必需的步骤是什么?
我观察了RowDefinitionCollection
班上的欲望行为.但我无法弄清楚它的实施.
谢谢
我有一个看起来像这样的泛型类型
public class Entity<T> where T : Entity<T>{ ... }
Run Code Online (Sandbox Code Playgroud)
我需要动态构造类型T.所以它看起来像这样:
public class MyClass : Entity<MyClass>{ ... }
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?
我的MVC WebApp部署到Azure Paas并使用Azure AD进行保护.身份验证设置使用下面的示例代码作为其基础,它在localhost中使用IISExpress或IIS.
https://github.com/Azure-Samples/active-directory-dotnet-webapp-webapi-openidconnect
但是在部署到Azure之后它无法正常工作.即使用户将正确进行身份验证,也永远不会调用AuthorizationCodeReceived委托.
这是设置身份验证的启动代码:
void ConfigureAuth(IAppBuilder app, Container container) {
_log.Debug("Configuring Azure Authentication");
AzureActiveDirectoryAppSetting setting = container.GetInstance<IAzureActiveDirectoryAppSettingFactory>().Get();
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions() {
ClientId = setting.ClientID,
Authority = setting.Authority,
PostLogoutRedirectUri = setting.PostLogoutRedirectUrl,
RedirectUri = setting.ReplyUrl,
Notifications = new OpenIdConnectAuthenticationNotifications() {
AuthorizationCodeReceived = new Func<Microsoft.Owin.Security.Notifications.AuthorizationCodeReceivedNotification, System.Threading.Tasks.Task>(args => OnAuthorizationCodeReceived(args, container)),
AuthenticationFailed = new Func<Microsoft.Owin.Security.Notifications.AuthenticationFailedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions>, System.Threading.Tasks.Task>(OnAuthorizationFailed),
}
}
);
}
System.Threading.Tasks.Task OnAuthorizationFailed(Microsoft.Owin.Security.Notifications.AuthenticationFailedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> args) {
_log.Error("Authorization Failed");
return System.Threading.Tasks.Task.FromResult<string>(null);
}
System.Threading.Tasks.Task OnAuthorizationCodeReceived(Microsoft.Owin.Security.Notifications.AuthorizationCodeReceivedNotification args, Container container) {
_log.Debug("Authorization Code …
Run Code Online (Sandbox Code Playgroud)