小编Rus*_*uan的帖子

使用引用其依赖项的构造函数创建动态类型

我有以下课程:

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)

c# reflection reflection.emit dynamic

9
推荐指数
1
解决办法
1441
查看次数

是否有相当于WPF .NET4.0的DependencyObjectCollection <T>?

该类允许从集合向其成员传播数据上下文.但它仅适用于SilverLight.

更多信息DepedencyObjectCollection可以在这篇文章中找到.

如果不存在等价物,那么创建一个必需的步骤是什么?

我观察了RowDefinitionCollection班上的欲望行为.但我无法弄清楚它的实施.

谢谢

c# silverlight wpf xaml

6
推荐指数
1
解决办法
420
查看次数

动态创建具有自引用约束的ac#泛型类型

我有一个看起来像这样的泛型类型

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)

可以这样做吗?

c# generics reflection reflection.emit

4
推荐指数
1
解决办法
478
查看次数

未为Azure WebApp调用OpenIdConnectAuthenticationNotifications.AuthorizationCodeReceived事件由Azure Active Directory保护

我的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)

azure azure-web-sites azure-active-directory

1
推荐指数
1
解决办法
1802
查看次数