IronPython: проблема с созданием WPF ShaderEffect - PullRequest
0 голосов
/ 21 декабря 2009

Я пытаюсь создать расширяемую программу, где пользователи, помимо прочего, могут создавать свои собственные шейдерные эффекты.

Поиск в Google зашел так далеко;

class Test(ShaderEffect):
    inputProperty = ShaderEffect.RegisterPixelShaderSamplerProperty("Input", type(Test()), 0)

Но я все еще получаю ошибку;

TypeError: не может получить доступ к защищенному член RegisterPixelShaderSamplerProperty без подкласса Python ShaderEffect.

Любая помощь будет принята с благодарностью.

Лучший источник в сети, который я смог найти , связан здесь

1 Ответ

0 голосов
/ 21 декабря 2009

Вам потребуется использовать Reflection для доступа к защищенному члену класса .NET - у вас нет подкласса Python, где вы могли бы получить доступ к такому члену напрямую.

Попробуйте что-нибудь подобное (я не проверял):

inputPropertyType = ShaderEffect.GetType().GetMember(
    'RegisterPixelShaderSamplerProperty',
    BindingFlags.Instance | BindingFlags.NonPublic)
inputProperty = inputPropertyType.GetValue(ShaderEffect, None)
inputProperty("Input", type(Test()), 0)
...